gpt4 book ai didi

python - Pandas:如何使用 json 数组分解数据框

转载 作者:行者123 更新时间:2023-12-05 09:04:10 25 4
gpt4 key购买 nike

如何对pandas数据框进行爆破?

输入 df:

enter image description here

要求的输出 df:

+----------------+------+-----+------+
|level_2 | date | val | num |
+----------------+------+-----+------+
| name_1a | 2020 | 1 | null |
| name_1b | 2019 | 2 | null |
| name_1b | 2020 | 3 | null |
| name_10000_xyz | 2018 | 4 | str |
| name_10000_xyz | 2019 | 5 | null |
| name_10000_xyz | 2020 | 6 | str |
+------------------------------------+

重现输入 df:

import pandas as pd
pd.set_option('display.max_colwidth', None)
data={'level_2':{1:'name_1a',3:'name_1b',5:'name_10000_xyz'},'value':{1:[{'date':'2020','val':1}],3:[{'date':'2019','val':2},{'date':'2020','val':3}],5:[{'date':'2018','val':4,'num':'str'},{'date':'2019','val':5},{'date':'2020','val':6,'num':'str'}]}}
df = pd.DataFrame(data)

最佳答案

分解 value 列上的数据框,然后弹出 value 列并从中创建一个新的数据框然后 加入 新框架和分解框架。

s = df.explode('value', ignore_index=True)
s.join(pd.DataFrame([*s.pop('value')], index=s.index))

          level_2  date  val  num
0 name_1a 2020 1 NaN
1 name_1b 2019 2 NaN
2 name_1b 2020 3 NaN
3 name_10000_xyz 2018 4 str
4 name_10000_xyz 2019 5 NaN
5 name_10000_xyz 2020 6 str

关于python - Pandas:如何使用 json 数组分解数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68941232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com