2016-01-16 1 views
1

Спасибо за тонну за любую помощь,AttributeError: «список» объект не имеет атрибута «ключи» при попытке создать DataFrame из списка dicts

У меня есть список словарей, что мне нужно поместить в кадр данных , Я знаю, что нормальный метод панд является

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' 

Почему он ищет ключи в этом списке сейчас?

+0

Я изливаю [этот связанный вопрос] (http://stackoverflow.com/questions/23314939/converting-a-list-of-dicts-to-a-pandas-dataframe?rq=1) положить не могу понять, что не так с моим решением здесь –

+0

Вам нужен еще один '[0]'? Очевидно, он ожидает словарь. – jonrsharpe

+0

Используя pandas 0.16.2 и Python 3.4, я получаю хороший DataFrame **, если ** исправляю 'index' до' 'Year'' (заглавная буква), и я удаляю конечную запятую из' Mixed_and_Poured' и добавляю два закрытия скобки ']]'. – MattDMo

ответ

0

Я не могу воспроизвести вашу ошибку с данными, я получаю KeyError.

Но зачем даже использовать 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 
+0

Я получаю AttributeError: объект «list» не имеет атрибутов «ключи» еще, мои данные немного дольше, если я опубликую все это? Я использовал from_records, потому что ответ из ссылки, которую я опубликовал, рекомендовал ее –

+0

, если кто-нибудь заинтересован, я выяснил, что мои данные структурированы неправильно. lemme fixit и сообщение, что я получаю –

+0

, разобрался и установил! был список, вложенный в самый конец моего списка словарей: b –

2

Так получается, что я не был на самом деле работает в списке только словарей, был маленький список ублюдок прячется в конце там.

Извините, ya'll!

 Смежные вопросы

  • Нет связанных вопросов^_^