输入数据帧“df”如下(请注意“id”列中的值):
| id | name |
|-------|---------------------------------------------------------------------------------------|
| a1xy | [ { "event": "sports", "start": "100"}, { "event": "lunch", "start": "121" } ] |
| a7yz | [ { "event": "lunch", "start": "109"}, { "event": "movie", "start": "97" } ] |
| bx4y | [ { "event": "dinner", "start": "78"}, { "event": "sleep", "start": "25" } ] |
我想展平JSON数组元素,以便我的结果输出是:
| id | name.event | name.start |
|-------|------------|------------|
| a1xy | sports | 100 |
| a1xy | lunch | 121 |
| a7yz | lunch | 109 |
| a7yz | movie | 97 |
| bx4y | dinner | 78 |
| bx4y | sleep | 25 |
“id”列中的值需要正确映射。如何在Python中执行此操作?你知道吗
我试过:
k = df.name.map(json.loads).apply(pd.DataFrame).tolist()
final_df = pd.concat(k)
但我无法映射“id”列中的值。你知道吗
也可以在apply函数中使用外部函数
您可以使用列表理解,通过
id
值、上次调用DataFrame
构造函数展平和更新每个字典:但如果输入是} 。你知道吗
json
,最好使用^{时间安排:
列表理解解决方案
180x
更快。你知道吗假设您有json对象列表作为以下输入
相关问题 更多 >
编程相关推荐