从 GroupBy 对象中的组中获取除前 k 行以外的所有行
Getting all but the first k rows from a group in a GroupBy object
我有一个 pandas GroupBy
对象。我正在使用 head(k)
将每个组的前 k 个元素提取到数据框中,我还想提取补码。每个组的大小都不固定。
有什么简单的方法吗?
是的,您可以使用 reset_index() 方法重新索引新数据帧。
你可以试试这个:
鉴于:
df = pd.DataFrame({'ID':['a','b','b','c','c','c','d','d','d','d'],
'Data':np.arange(10)})
Data ID
0 0 a
1 1 b
2 2 b
3 3 c
4 4 c
5 5 c
6 6 d
7 7 d
8 8 d
9 9 d
df[~df.index.isin(df.groupby('ID').head(2).index)]
输出:
Data ID
5 5 c
8 8 d
9 9 d
其中 df.groupby('ID').head(2)
returns:
Data ID
0 0 a
1 1 b
2 2 b
3 3 c
4 4 c
6 6 d
7 7 d
我有一个 pandas GroupBy
对象。我正在使用 head(k)
将每个组的前 k 个元素提取到数据框中,我还想提取补码。每个组的大小都不固定。
有什么简单的方法吗?
是的,您可以使用 reset_index() 方法重新索引新数据帧。
你可以试试这个:
鉴于:
df = pd.DataFrame({'ID':['a','b','b','c','c','c','d','d','d','d'],
'Data':np.arange(10)})
Data ID
0 0 a
1 1 b
2 2 b
3 3 c
4 4 c
5 5 c
6 6 d
7 7 d
8 8 d
9 9 d
df[~df.index.isin(df.groupby('ID').head(2).index)]
输出:
Data ID
5 5 c
8 8 d
9 9 d
其中 df.groupby('ID').head(2)
returns:
Data ID
0 0 a
1 1 b
2 2 b
3 3 c
4 4 c
6 6 d
7 7 d