gpt4 book ai didi

python - Pandas - 规范化 Json 列表

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

我正在尝试对 Pandas 数据框中的一列进行规范化,该列是一个字典列表(可能会丢失)。
复制示例

import pandas as pd
bids = pd.Series([[{'price': 606, 'quantity': 28},{'price': 588, 'quantity': 29},
{'price': 513, 'quantity': 33}],[],[{'price': 7143, 'quantity': 15},
{'price': 68, 'quantity': 91},{'price': 6849, 'quantity': 12}]])
data = pd.DataFrame([1,2,3]).rename(columns={0:'id'})
data['bids'] = bids
所需输出
id price quantity
1 606 28
1 588 29
1 513 33
3 7143 15
3 68 91
3 6849 12
尝试
尝试使用 Pandas json_normalize 解决,遵循文档 here .我很困惑为什么下面的方法都不起作用,以及什么类型的 record_path 可以解决我的问题。以下所有错误。
pd.json_normalize(data['bids'])
pd.json_normalize(data['bids'],['price','quantity'])
pd.json_normalize(data['bids'],[['price','quantity']])

最佳答案

使用 DataFrame.explode 在专栏bids然后从爆炸 bids 中的字典创建一个新的数据框列和使用 DataFrame.join join它与 df :

df = data.explode('bids').dropna(subset=['bids']).reset_index(drop=True)
df = df.join(pd.DataFrame(df.pop('bids').tolist()))
结果:
print(df)
id price quantity
0 1 606 28
1 1 588 29
2 1 513 33
3 3 7143 15
4 3 68 91
5 3 6849 12

关于python - Pandas - 规范化 Json 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63526528/

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