gpt4 book ai didi

python - 如何从具有值列表的字典列表中形成 DataFrame?

转载 作者:行者123 更新时间:2023-12-04 17:10:08 26 4
gpt4 key购买 nike

我有一个字典列表,其中包含列表中的值,我想将其转换为数据框,如下所示:

data_list = [
{'Width':[20,25,30,40],'Length':[21,22,23,24],'Ratio':[1.05,0.88,0.767,0.6]},
{'Width':[10,15,24,35],'Length':[20,25,30,40],'Ratio':[2,1.67,1.25,1.14]}
]

我尝试使用 pd.DataFrame.from_dict(data_list),但是,结果并不理想,如下所示:

|   |          Width |        Length |                 Ratio |
|---| -------------- | ------------ | --------------------- |
| 0 | [20,25,30,40] | [21,22,23,24] | [1.05,0.88,0.767,0.6] |
| 1 | [10,15,24,35] | [20,25,30,40] | [2,1.67,1.25,1.14] |

我的期望如下:

|   | Width | Length | Ratio |
|---| ----- | ------ | ----- |
| 0 | 20 | 21 | 1.05 |
| 1 | 25 | 22 | 0.88 |
......
| 6 | 24 | 30 | 1.25 |
| 7 | 35 | 40 | 1.14 |

任何帮助都会很棒!谢谢!

最佳答案

使用评论中的解决方案:

df = pd.DataFrame(data_list).apply(pd.Series.explode).reset_index(drop=True)
print (df)
Width Length Ratio
0 20 21 1.05
1 25 22 0.88
2 30 23 0.767
3 40 24 0.6
4 10 20 2
5 15 25 1.67
6 24 30 1.25
7 35 40 1.14

另一个想法是使用 defaultdictextend,最后传递给 DataFrame 构造函数以提高性能:

from collections import defaultdict
d = defaultdict(list)

for di in data_list:
for k, v in di.items():
d[k].extend(v)

df = pd.DataFrame(d)
print (df)
Width Length Ratio
0 20 21 1.050
1 25 22 0.880
2 30 23 0.767
3 40 24 0.600
4 10 20 2.000
5 15 25 1.670
6 24 30 1.250
7 35 40 1.140

关于python - 如何从具有值列表的字典列表中形成 DataFrame?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69625279/

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