将Dataframe转换为特定的字典?

时间:2019-06-13 16:13:00

标签: python pandas numpy dataframe dictionary

我有一个包含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)都包含该特定月份(例如1月或2月)中具有“日期”的数据。 ,我想根据字典中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

1 个答案:

答案 0 :(得分: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)}