转化词典列表

时间:2016-07-28 21:13:17

标签: python pandas

尝试跟踪各种应用的排名:

# I need to convert this list of dicts: 

[{"Date" : "7/1/16", "Foo": 32, "Bar" : 49, 'Spam': 55},
{"Date" : "7/2/16", "Foo": 43, "Bar" : 44, 'Spam': 77},
{"Date" : "7/3/16", "Foo": 23, "Bar" : 47, 'Spam': 63}]

# Into this list of dicts:

[{"AppTitle" : "Foo", "7/1/16" : 32, "7/2/16" : 43, "7/3/16" : 23},
{"AppTitle" : "Bar", "7/1/16" : 49, "7/2/16" : 44, "7/3/16" : 47},
{"AppTitle" : "Spam", "7/1/16" : 55, "7/2/16" : 77, "7/3/16" : 63}]

基本上,我需要创建一个可以使用包装器的数据帧 我为python的CSV模块构建。我查看了大量有关从dicts列表创建数据框架的问题,但没有什么能够满足我的需要。

供参考:Foo,Bar,&垃圾邮件是应用程序标题, 而数字是指定日期的等级

1 个答案:

答案 0 :(得分:2)

import pandas as pd
df = pd.DataFrame([{"Date" : "7/1/16", "Foo": 32, "Bar" : 49, 'Spam': 55},
                   {"Date" : "7/2/16", "Foo": 43, "Bar" : 44, 'Spam': 77},
                   {"Date" : "7/3/16", "Foo": 23, "Bar" : 47, 'Spam': 63}])

从这个DataFrame中,您可以使用转置方法获得结果:

df.set_index('Date').T.reset_index().rename(columns={'index': 'AppTitle'}).to_dict('r')
Out: 
[{'7/1/16': 49, '7/2/16': 44, '7/3/16': 47, 'AppTitle': 'Bar'},
 {'7/1/16': 32, '7/2/16': 43, '7/3/16': 23, 'AppTitle': 'Foo'},
 {'7/1/16': 55, '7/2/16': 77, '7/3/16': 63, 'AppTitle': 'Spam'}]