pandas中apply的用法
DataFrame的apply函数是逐行或逐列来处理数据。GroupBy的apply函数对每个分组进行计算。
df = pd.DataFrame({'key1': ['a', 'a', 'b', 'b', 'a', 'a', 'a', 'b', 'b', 'a'],
'key2': ['one', 'two', 'one', 'two', 'one', 'one', 'two', 'one', 'two', 'one'],
'data1': np.random.randint(1, 10, 10),
'data2': np.random.randint(1, 10, 10)})
df
# 根据 column 排序,输出其最大的 n 行数据
def top(df, n=2, column='data1'):
return df.sort_values(by=column, ascending=False)[:n]
top(df, n=5)
df.groupby('key1').apply(top)
# 传递参数
df.groupby('key1').apply(top, n=3, column='data2') #apply中的参数是传给函数的