我有一个GROUPBY对象:转换一个熊猫系列,以良好的成形数据帧
g = dfchurn.groupby('ID')['isconfirm'].value_counts().groupby(level=0).apply(lambda x: x/float(x.sum()))
type(g)
Out[230]: pandas.core.series.Series
g.head(5)
Out[226]:
ID isconfirm
0000 0 0.985981
1 0.014019
0064 0 0.996448
1 0.003552
0080 0 0.997137
我的目标是获得前100名的ID通过比下降(最右列)排序,其中isconfirm = 0 。
要做到这一点,我想到了一个很好的数据框与良好的命名列,所以我可以在isconfirm = 0时以比率的形式查询顶部ID。
我试过了,例如,
gdf = g.to_frame()
gdf.unstack(level=1)
gdf.head(5)
isconfirm
isconfirm 0 1
ID
0000 0.985981 0.014019
0064 0.996448 0.003552
gdf.columns
Out[227]: Index([u'isconfirm'], dtype='object')
这并没有导致任何地方。必须有一个干净而简洁的方式来做到这一点。
我接受没有按答案甚至没有制作一个数据框 - 直接与系列'g'合作 - 因此它更加简洁。 –