You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas删除2018年5月1日之前的指定数据行?

日期筛选与多条件数据删除方案

需求:删除2018年5月1日之前的数据行,已完成日期格式转换:

df['DATE'] = pd.to_datetime(df['DATE'],format='%d/%m/%Y')

问题1

如何设置截止日期为2018-04-30?

问题2

需结合多条件删除数据,现有部分代码如下,如何补充日期条件?

df2 = df[(df['REFERENCE'].str.contains("ABC") & (df['COUNTRY'] == 'countryname') 
& 

<<how can i mention the cut off date and the actual date column that has all dates?) == False]

解决方案

方法1:直接删除目标行

通过drop()方法定位并删除符合条件的数据:

# 删除包含指定前缀、指定国家且日期早于/等于2018-05-01的数据
raw_df.drop(raw_df[raw_df['REFERENCE'].str.contains("prefix") & (raw_df['COUNTRY'] == 'countryname') & (raw_df['DATE'].le('2018-05-01'))].index, inplace = True)
  • 若要保留2018-05-01及之后的数据,将.le()(小于等于)替换为.ge()(大于等于)
  • 针对问题1的2018-04-30截止需求,只需把日期参数改为'2018-04-30',使用.le('2018-04-30')即可筛选并删除该日期及之前的行

方法2:筛选保留有效行(适配问题2代码)

给现有代码补充日期条件,通过取反筛选出需要保留的数据:

# 保留不满足「含ABC+指定国家+日期早于2018-05-01」组合条件的数据
df2 = df[~(df['REFERENCE'].str.contains("ABC") & (df['COUNTRY'] == 'countryname') & (df['DATE'] < '2018-05-01'))]
  • 若以2018-04-30为截止,将日期条件改为df['DATE'] <= '2018-04-30'
  • ~符号等价于原代码中的== False,写法更简洁直观

内容的提问来源于stack exchange,提问作者Ziggy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 06:39:35