【发布时间】:2018-10-02 09:42:06
【问题描述】:
输入的DataFrame“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”列中的值。
【问题讨论】:
-
输入是
json?可以使用json_normalize吗?