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

pandas中apply的用法

# 根据 column 排序,输出其最大的 n 行数据
def top(df, n=2, column='data1'):
    return df.sort_values(by=column, ascending=False)[:n]

top(df, n=5)

pandas中apply的用法

df.groupby('key1').apply(top)


pandas中apply的用法

# 传递参数
df.groupby('key1').apply(top, n=3, column='data2')  #apply中的参数是传给函数的

pandas中apply的用法