我有一个带有日期列的Pandas数据框架。我只想每个月都有最旧的记录,并删除之前的任何记录。会有副本,我想保留它们。我还需要一个只有月份和年份的新专栏。
输入
Provider日期 |
---|
Apple | 022年1月
苹果 | 022年1月5日
苹果 | 022年1月20日
苹果 | 022年1月20日
苹果 | 022年2月5日
苹果 | 022年2月10日
创建列month_year
和Series.dt.strftime
,然后通过GroupBy.transform
中的原始date
列比较每组的最大日期时间,并在boolean indexing
:中进行筛选
df['date'] = pd.to_datetime(df['date'], dayfirst=True)
df = df.assign(month_year = df['date'].dt.strftime('%m/%Y'))
df = df[df.groupby(['Provider', 'month_year'])['date'].transform('max').eq(df['date'])]
print (df)
Provider date month_year
2 Apple 2022-01-20 01/2022
3 Apple 2022-01-20 01/2022
5 Apple 2022-02-10 02/2022