我有一个预定义的数据框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 值。
请告知执行此操作的最佳方法是什么?
最佳答案
不是最干净的,但你可以这样做:
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 True
关于python - 填充预定义的 pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62980617/