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

如何在Pandas中删除Date列为指定日期(4/1/2022)的行?

解决方案:删除datetime类型列中指定日期的行

由于你的Date列是datetime64[ns]类型,不能使用字符串方法str.contains来筛选日期,直接与构造的datetime对象比较即可实现需求。

方法1:布尔索引直接筛选

构造目标日期的datetime对象,筛选出不等于该日期的行:

import pandas as pd

# 若Date列还未转为datetime类型,先执行转换
# df['Date'] = pd.to_datetime(df['Date'])

# 筛选非目标日期的行
new_df = df[df['Date'] != pd.to_datetime('4/1/2022')]

方法2:通过索引删除目标行

先定位目标日期对应的行索引,再删除这些行:

target_date = pd.to_datetime('4/1/2022')
# 获取目标日期的行索引
drop_indices = df[df['Date'] == target_date].index
# 删除指定索引的行
new_df = df.drop(drop_indices)

验证结果

运行上述代码后,new_df的输出符合预期:

ID       Date
0  AA 2022-01-01
1  BB 2022-01-01

原方法失效原因

str.contains是字符串类型列的专属方法,对datetime类型列调用str属性时,pandas会返回全为NaN的序列,导致筛选条件无法正确匹配目标行,因此无法删除指定日期的数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:45:57