这是绝笔:
data = [
{'1':20},
{'1':10},
{'1':40},
{'1':14},
{'1':33}
]
我要做的是循环遍历每个字典并将每个值附加到dataframe中的一个列。 现在我正在做
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(数据).rename(列= {' 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})
对于包含字典的字典列表是否有更有效的方法? 问题来源StackOverflow 地址:/questions/59386344/efficient-way-of-looping-through-list-of-dictionaries-and-appending-items-into-c
一种方法是将数据传递给DataFrame cosntructor,然后使用rename:
df = pd.DataFrame(data).rename(columns={'1':'col1'})
print (df)
col1
0 20
1 10
2 40
3 14
4 33
如果有必要过滤使用列表理解和添加参数列:
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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。