假设我们有一个DataFrame对象df,包含三列'A'、'B'和'C',我们要按照这三列进行分组,并且保留每个组的最小5个数据。
以下是一个示例代码:
import pandas as pd
# 创建一个示例DataFrame
data = {'A': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'B': [11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
'C': [21, 22, 23, 24, 25, 26, 27, 28, 29, 30]}
df = pd.DataFrame(data)
# 按照三列进行分组,并保留每个组的最小5个数据
result = df.groupby(['A', 'B', 'C']).apply(lambda x: x.nsmallest(5, 'A')).reset_index(drop=True)
print(result)
输出结果如下:
A B C
0 1 11 21
1 2 12 22
2 3 13 23
3 4 14 24
4 5 15 25
5 6 16 26
6 7 17 27
7 8 18 28
8 9 19 29
9 10 20 30
在代码中,我们首先创建了一个示例的DataFrame对象df。然后,使用groupby
方法按照列'A'、'B'和'C'进行分组。接下来,使用apply
方法将每个分组的数据进行处理,保留每个组的最小5个数据,使用nsmallest
方法实现。最后,使用reset_index
方法重置索引,并将结果存储在result变量中。
注意:这只是一种解决方法,具体的实现可能会根据实际情况有所不同。
上一篇:按照3个或更多列进行分组和汇总
下一篇:按照3个条件对对象数组进行排序