从字典创建数据框[重复]
Posted
技术标签:
【中文标题】从字典创建数据框[重复]【英文标题】:Create a dataframe from a dictionary [duplicate] 【发布时间】:2018-02-14 07:51:24 【问题描述】:字典的键是日期,值是不同长度的列表
例如字典是
dict = '2017-09-01' : [A B] , '2017-09-02' : [C D E]
我想要的是一个像这样的数据框
date Message
2017-09-01 A
2017-09-01 B
2017-09-02 C
2017-09-02 D
2017-09-02 E
【问题讨论】:
【参考方案1】:您可以使用列表推导来展平字典,然后从中构造数据框:
d = '2017-09-01' : ['A', 'B'] , '2017-09-02' : ['C', 'D', 'E']
pd.DataFrame(
[(k, val) for k, vals in d.items() for val in vals],
columns=['date', 'message']
)
# date message
#0 2017-09-01 A
#1 2017-09-01 B
#2 2017-09-02 C
#3 2017-09-02 D
#4 2017-09-02 E
或pandas.stack
的更长解决方案:
(pd.DataFrame.from_dict(d, 'index').stack()
.rename('message')
.rename_axis(('date', ''))
.reset_index(level=0)
.reset_index(drop=True))
# date message
#0 2017-09-01 A
#1 2017-09-01 B
#2 2017-09-02 C
#3 2017-09-02 D
#4 2017-09-02 E
【讨论】:
以上是关于从字典创建数据框[重复]的主要内容,如果未能解决你的问题,请参考以下文章