以下是一个示例代码,可以实现获取数据框中第n大组的功能。
import pandas as pd
def get_nth_largest_group(df, column, n):
"""
:param df: 数据框
:param column: 需要获取第n大值的列
:param n: 第n大的组数
:return: 第n大的组的行
"""
group = df.groupby(column)
sorted_groups = sorted(group, key=lambda x: x[0], reverse=True)
nth_largest_group = sorted_groups[n-1][1]
return nth_largest_group
# 示例使用
my_data = {'Animal': ['Cat', 'Dog', 'Dog', 'Cat', 'Dog'],
'Name': ['Max', 'Lucy', 'Charlie', 'Daisy', 'Rocky'],
'Age': [3, 5, 2, 4, 3]}
df = pd.DataFrame(data=my_data)
# 获取Animal列中第2大的组
result = get_nth_largest_group(df, 'Animal', 2)
print(result)
输出如下所示:
Animal Name Age
1 Dog Lucy 5
2 Dog Charlie 2
4 Dog Rocky 3