Converting habe ich ein groupby Objekt:eine Pandas Serie zu einem wohlgeformten Datenrahmen
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
Mein Ziel ist die Top-100-IDs sortiert nach Verhältnis absteigend (die rechte Spalte), wo isconfirm = 0 zu erhalten .
Um dies zu tun, überlegte ich, zu einem schönen Datenrahmen mit gut benannten Spalten, so dass ich die oberen IDs in Bezug auf das Verhältnis abfragen kann, wenn isconfirm = 0.
Ich habe versucht, zum Beispiel
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')
Das ist nicht überall geführt haben. Es muss einen sauberen und knappen Weg geben, dies zu tun.
Die Antwort, die ich doesn akzeptiert mache nicht einmal einen Datenrahmen - arbeitet direkt mit der Serie 'g' - also es ist terser. –