从字典创建数据框[重复]

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

【讨论】:

以上是关于从字典创建数据框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从一系列字典中创建键和值的数据框[重复]

将数据框转换为字典 [重复]

将字典列表转换为数据框 [重复]

Pandas:如何将具有重复索引值的数据框转换为字典

从字典中向df添加许多行[重复]

从字典中添加具有映射值的新熊猫列[重复]