Ger*_*rry 5 python group-by dataframe pandas pandas-groupby
我有一个数据框df
,我想n
在其中删除一组列中的最后一行。例如,saydf
的定义如下,组由列a
和组成b
:
>>> import pandas as pd
>>> df = pd.DataFrame({'a':['abd']*4 + ['pqr']*5 + ['xyz']*7, 'b':['john']*7 + ['doe']*9, 'c':range(16), 'd':range(1000,1016)})
>>> df
a b c d
0 abd john 0 1000
1 abd john 1 1001
2 abd john 2 1002
3 abd john 3 1003
4 pqr john 4 1004
5 pqr john 5 1005
6 pqr john 6 1006
7 pqr doe 7 1007
8 pqr doe 8 1008
9 xyz doe 9 1009
10 xyz doe 10 1010
11 xyz doe 11 1011
12 xyz doe 12 1012
13 xyz doe 13 1013
14 xyz doe 14 1014
15 xyz doe 15 1015
>>>
Run Code Online (Sandbox Code Playgroud)
所需的输出n=2
如下:
>>> df
a b c d
0 abd john 0 1000
1 abd john 1 1001
4 pqr john 4 1004
9 xyz doe 9 1009
10 xyz doe 10 1010
11 xyz doe 11 1011
12 xyz doe 12 1012
13 xyz doe 13 1013
>>>
Run Code Online (Sandbox Code Playgroud)
所需的输出n=3
如下:
>>> df
a b c d
0 abd john 0 1000
9 xyz doe 9 1009
10 xyz doe 10 1010
11 xyz doe 11 1011
12 xyz doe 12 1012
>>>
Run Code Online (Sandbox Code Playgroud)
您可以使用groupby
and ,drop
如下所示:
n = 2
df.drop(df.groupby(['a','b']).tail(n).index, axis=0)
Run Code Online (Sandbox Code Playgroud)