Pandas column of group columns after groupby.apply (..)

        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

From the data frame above, I want to remove the first column, which:

uid
1
2
2
2
2
2

and remove

    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

Can anyone help?

+4
source share
3 answers

You can avoid the inclusion uidin the index, in the first place, passing group_keys=Falseingroupby

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

   uid  iid  val
4    1    5  5.5
+6
source

Use reset_indexor droplevel:

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


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

Or:

df.index = df.index.droplevel(0)
+4
source

you can set as_indexhow Falseto remove the index from grouped by df.

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

Source: https://habr.com/ru/post/1675015/


All Articles