我有一个像这样的大数据集,我正在尝试制作一个数据帧字典的字典,以组织"犯罪"列和其他列的频率。
列车数据
23 Wednesday BAYVIEW CENTRAL INGLESIDE NORTHERN PARK RICHMOND crime
0 1 1 0 0 0 1 0 0 3
1 1 1 0 0 0 1 0 0 1
2 1 1 0 0 0 1 0 0 1
3 1 1 0 0 0 1 0 0 0
4 1 1 0 0 0 0 1 0 0
5 1 1 0 0 1 0 0 0 0
6 1 1 0 0 1 0 0 0 2
7 1 1 1 0 0 0 0 0 2
8 1 1 0 0 0 0 0 1 0
9 1 1 0 1 0 0 0 0 0
因此,我决定首先按数据帧分组,列为"犯罪":
train_data=train_data.groupby(['crime']).sum()
23 Wednesday BAYVIEW CENTRAL INGLESIDE NORTHERN PARK RICHMOND
crime
0 5 5 0 1 1 1 1 1
1 2 2 0 0 0 2 0 0
2 2 2 1 0 1 0 0 0
3 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了解更多选项。
如果你在熊猫身上,MaxNoe发布的0.17.0或更高版本:
train_data.groupby('crime').sum().to_dict(orient='index')
否则:
train_data.groupby('crime').sum().T.to_dict()