以下是一个示例代码,用于按分类列的每个值筛选最近5行的日期:
import pandas as pd
# 创建一个示例数据集
data = {'分类列': ['A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
'日期': pd.date_range('2022-01-01', periods=8)}
df = pd.DataFrame(data)
# 按分类列进行分组,并使用apply方法筛选最近的5行日期
df_filtered = df.groupby('分类列').apply(lambda x: x.nlargest(5, '日期')).reset_index(drop=True)
print(df_filtered)
输出结果如下:
分类列 日期
0 A 2022-01-05
1 A 2022-01-04
2 B 2022-01-06
3 B 2022-01-05
4 B 2022-01-04
5 C 2022-01-08
6 C 2022-01-07
7 C 2022-01-06
在上述代码中,首先创建了一个示例数据集df
,其中包含一个分类列和一个日期列。然后,使用groupby
方法按分类列进行分组,并使用apply
方法在每个分组上执行自定义函数。
自定义函数使用nlargest
方法选择每个分组中日期列的最大的5个值,即最近的5个日期。最后,使用reset_index
方法重置索引并存储筛选后的结果到df_filtered
中。
上一篇:按照分类列拆分训练集和测试集