2017-04-18 10 views
4
 uid iid val 
uid     
1 1 1 5 5.5 
2 3 1 4 3.5 
2 2 1 4 3.5 
2 7 1 4 3.5 
2 9 1 4 3.5 
2 11 1 4 3.5 

Von der Datenrahmen oben, ich will die erste Spalte entfernen, das ist:Pandas fallen Gruppenspalte nach groupby.apply (..)

uid 
1 
2 
2 
2 
2 
2 

und extrahieren

uid iid val 

1 1 5 5.5 
3 1 4 3.5 
2 1 4 3.5 
7 1 4 3.5 
9 1 4 3.5 
11 1 4 3.5 

Kann jemand helfen?

Antwort

6

Sie vermeiden können die uid im Index in erster Linie unter anderem durch group_keys=False zum groupby

vorbei
df.groupby('uid', group_keys=False).apply(lambda x: x.tail(len(x) // 5)) 

    uid iid val 
4 1 5 5.5 
4

Verwenden reset_index oder droplevel:

df = df.reset_index(level=0, drop=True) 


df = df.reset_index(level='uid', drop=True) 

Oder:

df.index = df.index.droplevel(0) 
0

können Sie sehen t as_index als False, um den Index aus der Gruppierung nach df zu entfernen.

df.groupby('uid', as_index=False) 
Verwandte Themen