Reputation: 435
Thanks a ton for any help,
I have a list of dictionaries that I need to put in a data frame. I know the normal method in pandas is
final_df=pd.DataFrame.from_records(Mixed_and_Poured[0], index='year')
where Mixed_and_poured is a list containing another list that actually holds the dictionaries
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'},
I could swear
final_df=pd.DataFrame.from_records(Mixed_and_Poured[0], index='year')
was just working!! but when I ran it today it throws
AttributeError: 'list' object has no attribute 'keys'
Why is it looking for keys in this list now?
Upvotes: 4
Views: 21476
Reputation: 483
I had this issue as well when a couple of items from a list were unavailable (None). The list was quite large so I didn't notice at first. Easiest quick-fix I used was to make a new list with just the items was None:
list1 = [2,3,4, None, 2]
list1 = [item for item in list1 if item != None]
list1
[2, 3, 4, 2]
Upvotes: 0
Reputation: 435
So turns out I wasnt actually operating on a list of just dictionaries, there was a little bastard list hiding at the end there.
Sorry ya'll!
Upvotes: 5
Reputation: 7822
I can't reproduce your error with the data given, I get a KeyError.
But why even use from_records?
pd.DataFrame(Mixed_and_Poured[0]).set_index('Year')
Out:
Country Internet users
Year
2000 Brazil 2.9
2005 Brazil 21
2010 Brazil 40.7
2011 Brazil 45
Upvotes: 3