gpt4 book ai didi

python - 遍历字典列表并将项追加到数据框中的列的有效方法

转载 作者:行者123 更新时间:2023-12-04 15:17:00 24 4
gpt4 key购买 nike

这是MRE:

data = [
{'1':20},
{'1':10},
{'1':40},
{'1':14},
{'1':33}
]

我想做的是遍历每个字典,并将每个值附加到数据帧中的列。

现在我在做
import pandas as pd
lst = []
for item in data:
lst.append(item['1'])

df = pd.DataFrame({"col1":lst})

输出:
    col1
0 20
1 10
2 40
3 14
4 33

是的,这是我想要的,但是列表中有超过100万个字典。这是最有效的方法吗?

编辑: pd.DataFrame(data).rename(columns={'1':'col1'})完全适用于上述情况,但是如果数据看起来像这样怎么办?
data = [
{'1':
{'value':20}},
{'1':
{'value':10}},
{'1':
{'value':40}},
{'1':
{'value':14}},
{'1':
{'value':33}}]

所以我会用:
lst = []
for item in data:
lst.append(item['1']['value'])

df = pd.DataFrame({"col1":lst})

有没有更有效的方法来包含字典的字典列表?

最佳答案

一种想法是将data传递给DataFrame cosntructor,然后使用rename:

df = pd.DataFrame(data).rename(columns={'1':'col1'})
print (df)
col1
0 20
1 10
2 40
3 14
4 33

如果需要过滤,请使用列表理解并添加参数 columns:
df = pd.DataFrame([x['1'] for x in data], columns=['col1'])
print (df)
col1
0 20
1 10
2 40
3 14
4 33

编辑:对于新数据使用:
data = [
{'1':
{'value':20}},
{'1':
{'value':10}},
{'1':
{'value':40}},
{'1':
{'value':14}},
{'1':
{'value':33}}]

df = pd.DataFrame([x['1']['value'] for x in data], columns=['col1'])
print (df)
col1
0 20
1 10
2 40
3 14
4 33

或者:
df = pd.DataFrame([x['1'] for x in data]).rename(columns={'value':'col1'})
print (df)
col1
0 20
1 10
2 40
3 14
4 33

关于python - 遍历字典列表并将项追加到数据框中的列的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59386344/

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