【问题标题】: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

【问题讨论】:

    标签: python pandas


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-04
      • 2020-07-15
      • 2019-05-22
      • 2021-07-27
      • 2021-12-30
      • 2016-01-14
      • 2017-07-03
      相关资源
      最近更新 更多