尝试跟踪各种应用的排名:
# 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,&垃圾邮件是应用程序标题, 而数字是指定日期的等级
答案 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'}]