填充预定义的熊猫数据框

时间:2020-07-19 13:00:16

标签: python json python-3.x pandas dataframe

我有一个预定义的数据帧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值。

请告知执行此操作的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

不是最干净的,但是您可以这样做:

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