【问题标题】:Converting Dataframe into a specific dictionary?将 Dataframe 转换为特定的字典?
【发布时间】:2019-10-28 07:02:39
【问题描述】:

我有一个包含 15000 行和 50 列的数据框 (datfrm),如下所示:

    datfrm:

    Id,         date,      f1,  f2,   …,    f48
    01,   01-01-2017,      23,  12,   …,         32
    01,   01-02-2017,      03,  22,   …,         21
    01,   01-03-2017,      44,  12,   …,         36
            ---
    01,   01-12-2017,      62,   8,   …,         43
    02,   01-01-2017,      21,  11,   …,         23
            ….
    0n,   01-12-2017,      33,  23,  ….,         29

我想将此数据帧转换为具有 12 个键的字典,其中每个键 (m1, m2,...,m12) 包含在该特定月份具有“日期”的数据,例如一月或二月。换句话说,我想根据字典中 12 个键中的“日期”对它们进行分组。当它们转换为字典时,我还需要保留行的索引。所以我想要的字典应该是这样的:

 m_dict.keys():

          dict_keys(['m1', 'm2', 'm3', 'm4', 'm5', 'm6',       
                 'm7','month8', 'm9', 'm10', 'm11', 'm12']) 

     m_dict[‘m1’]:
            Id,      date,          f1,     f2,  …,         f48
            01,      01-01-2017,    23,     12,      …,      32
            02,      01-01-2017,    21,     11,      …,      23
            03,      01-01-2017,    17,      3,      …,      32

【问题讨论】:

  • Groupby 是您需要的。简单地提取月份的方式取决于数据列的类型。长话短说:它是一个字符串还是一个真实的日期?

标签: python pandas numpy dataframe dictionary


【解决方案1】:

试试:

# convert to date if needed
df.date = pd.to_datetime(df.date, dayfirst=True)

m_dict = {f'm{v}':g for v,g in df.groupby(df.date.dt.month)}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-06
    • 2016-10-16
    • 2017-12-26
    • 2014-12-30
    • 2021-01-18
    • 2016-05-26
    相关资源
    最近更新 更多