我有一个预定义的数据帧df1
import pandas as pd
df1 = pd.DataFrame(columns = ["id", "col_a","col_b","col_c"])我有一个json文件:
{'123': {'col_a': 5, 'col_b': "kuku", 'col_c': True}}或者有时它可以是:
{'123': {'col_a': 5, 'col_b': ["kuku", "bubu", "fooo"], 'col_c': True}}其中'123'密钥是id。
我想将这些json的数据作为新的行/行添加到我的数据帧中,但是如果col_b是一个列表,我希望它是:
id col_a col_b col_c
123 5 kuku True
123 5 bubu True
123 5 fooo True或者对col_b应用一个热编码器。
我使用的是pd.json_normalize,但我还想取消列表的嵌套并添加id值。
请告诉我做这件事最好的方法是什么?
发布于 2020-07-19 21:01:33
不是最干净的,但你可以这样做:
df1 = df1.append(pd.DataFrame(new_json).T
.explode('col_b')
.rename_axis('id')
.reset_index()
)输出:
id col_a col_b col_c
0 123 5 kuku True
1 123 5 bubu True
2 123 5 fooo Truehttps://stackoverflow.com/questions/62980617
复制相似问题