我有一个像这样的庞大数据集,我试图创建一个数据框的字典中的字典来组织’crime’列和其他列的频率。
train_data
23 Wednesday BAYVIEW CENTRAL INGLESIDE NORTHERN PARK RICHMOND crime0 1 1 0 0 0 1 0 0 31 1 1 0 0 0 1 0 0 12 1 1 0 0 0 1 0 0 13 1 1 0 0 0 1 0 0 04 1 1 0 0 0 0 1 0 05 1 1 0 0 1 0 0 0 06 1 1 0 0 1 0 0 0 27 1 1 1 0 0 0 0 0 28 1 1 0 0 0 0 0 1 09 1 1 0 1 0 0 0 0 0
所以我首先决定按’crime’列对数据框进行分组:
train_data=train_data.groupby(['crime']).sum() 23 Wednesday BAYVIEW CENTRAL INGLESIDE NORTHERN PARK RICHMONDcrime 0 5 5 0 1 1 1 1 11 2 2 0 0 0 2 0 02 2 2 1 0 1 0 0 03 1 1 0 0 0 1 0 0
然后我试图将它们组织成一个字典中的字典,但我做不到,我尝试了一些迭代的方法,但数据框似乎有些问题。
结果应该像这样:
{0: {23: 5, Wednesday: 1, BAYVIEW: 0, CENTRAL: 1, ...}, 1: {23: 2, Wednesday: 2, BAYVIEW: 0, ...}, 2: {...}, 3: {...}}
回答:
你可以使用
d = train_data.to_dict(orient='index')
有关更多选项,请参见 http://pandas.pydata.org/pandas-docs/version/0.17.1/generated/pandas.DataFrame.to_dict.html。