Man*_*men 6 python group-by dataframe pandas pandas-groupby
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
Run Code Online (Sandbox Code Playgroud)
从上面的数据框中,我想删除第一列,即:
uid
1
2
2
2
2
2
Run Code Online (Sandbox Code Playgroud)
并提取
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
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
piR*_*red 10
您可以uid通过传递group_keys=False到第一位来避免在索引中包含groupby
df.groupby('uid', group_keys=False).apply(lambda x: x.tail(len(x) // 5))
uid iid val
4 1 5 5.5
Run Code Online (Sandbox Code Playgroud)
df = df.reset_index(level=0, drop=True)
df = df.reset_index(level='uid', drop=True)
Run Code Online (Sandbox Code Playgroud)
要么:
df.index = df.index.droplevel(0)
Run Code Online (Sandbox Code Playgroud)