AttributeError:' list'对象没有属性'键'尝试从dicts列表创建DataFrame时

时间:2016-01-16 19:57:27

标签: python list dictionary pandas dataframe

非常感谢您的帮助,

我有一个字典列表,我需要放在数据框中。我知道pandas中的常规方法是

final_df=pd.DataFrame.from_records(Mixed_and_Poured[0], index='year')

其中Mixed_and_poured是一个列表,其中包含另一个实际包含词典的列表

print Mixed_and_Poured
[[{'Country': 'Brazil', u'Internet users': '2.9', 'Year': '2000'}, {'Country': 'Brazil', u'Internet users': '21', 'Year': '2005'}, {'Country': 'Brazil', u'Internet users': '40.7', 'Year': '2010'}, {'Country': 'Brazil', u'Internet users': '45', 'Year': '2011'}, 

我可以发誓

final_df=pd.DataFrame.from_records(Mixed_and_Poured[0], index='year')

刚刚工作!!但是当我今天跑它时它会抛出

AttributeError: 'list' object has no attribute 'keys'

为什么现在在这个列表中寻找密钥?

3 个答案:

答案 0 :(得分:3)

事实证明我实际上并没有在一个字典列表上运行,最后有一个小混蛋列表隐藏在那里。

抱歉,你好!

答案 1 :(得分:2)

我无法使用给定的数据重现您的错误,我得到了一个KeyError。

但为什么甚至使用from_records?

pd.DataFrame(Mixed_and_Poured[0]).set_index('Year')

输出:

     Country Internet users
Year                       
2000  Brazil            2.9
2005  Brazil             21
2010  Brazil           40.7
2011  Brazil             45

答案 2 :(得分:0)

当列表中的一些项目不可用时,我也遇到了这个问题(无)。这个名单很大,所以我一开始并没有注意到。我使用的最简单的快速修复是创建一个新列表,只有项目是无:

list1 = [2,3,4, None, 2]
list1 = [item for item in list1 if item != None]
list1
[2, 3, 4, 2]