在pandas中,可以使用groupby
和head
方法来获取每个类别的前n个值,并保留所有列。
首先,需要使用groupby
方法对数据进行分组,将数据按照类别进行分组。然后,可以使用head
方法获取每个组的前n个值。
下面是一个示例代码:
import pandas as pd
# 假设有一个DataFrame,其中包含了类别和对应的数值
df = pd.DataFrame({
'Category': ['A', 'A', 'A', 'B', 'B', 'C'],
'Value': [1, 2, 3, 4, 5, 6],
'OtherColumn': ['foo', 'bar', 'baz', 'qux', 'quux', 'corge']
})
# 获取每个类别的前两个值,并保留所有列
n = 2
result = df.groupby('Category').head(n)
print(result)
运行以上代码,将输出每个类别的前两个值,同时保留所有列的数据。
在这个示例中,groupby
方法按照'Category'列进行分组,然后使用head
方法获取每个组的前两个值。最终的结果将会是:
Category Value OtherColumn
0 A 1 foo
1 A 2 bar
3 B 4 qux
4 B 5 quux
领取专属 10元无门槛券
手把手带您无忧上云