Split-Apply-Combine
步骤
- 首先将数据进行排序;
- Split:通过groupby进行划分;
- Apply:对分组数据进行编号;
- Combine:设置条件对所有数据进行筛选提取;
实例
import numpy as np
import pandas as pd
def ranker(df):
df['d_rank'] = np.arange(len(df)) + 1
return df
df = pd.DataFrame({'A': ['1', '2', '3', '4', '5'],
'B': ['one', 'two', 'one', 'two', 'one'],
'C': ['1', '1', '2', '2', '3']})
df.sort_values('A', ascending=False, inplace=False)
# 对分好组后的每组进行编号,编号规则为ranker函数
df = df.groupby('B').apply(ranker)
# 提取每组第一个编号的值
f = df[df['d_rank'] == 1]
print(f)
结果为: