2017-04-18 45 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 

从以上数据帧,我想删除的第一列,其为:熊猫groupby.apply后下降组柱(..)

uid 
1 
2 
2 
2 
2 
2 

并提取

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 

有人可以帮忙吗?

回答

6

您可以避免通过传递group_keys=Falsegroupby

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

    uid iid val 
4 1 5 5.5 
4

使用reset_indexdroplevel

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


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

或者:

df.index = df.index.droplevel(0) 
0
包括在首位指数 uid

你可以选择t as_index as False删除由df分组的索引。

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