python - 填充预定义的 pandas 数据框

标签 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 值。

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

最佳答案

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

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/

相关文章:

python - 如何使用 werkzeug 或其他 python 请求框架制作非常简单的 http 代理?

python - 编译后的 Python 代码和 C++ 代码一样快吗?

javascript - 如何在以下上下文中使用 javascript 中的 'this' 获取函数的返回值

javascript - ajax post之后mvc url太长

python - 通过 Python 和 Pandas 进行数据透视

python - 无法从给定的 python 代码生成 S=>Ba

Python Maria DB 语法

python - 如何在 QGraphicsView 中制作 2 层?

php - Laravel 在 json 中搜索查询中的值 where

python - 使用字典、RobotFramework 时 Evaluate 和 SetVariable 之间的区别