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

如何从Pandas DataFrame字符串列中移除日期/时间值并替换为空?

处理DataFrame中混入日期/时间类型的字符串列

情况1:仅混入datetime/date类型对象

如果你的列里只有字符串对象和datetime/date类型对象,直接通过类型判断替换最高效:

import pandas as pd
import datetime

# 假设目标列名为'target_col'
df['target_col'] = df['target_col'].apply(
    lambda x: pd.NA if isinstance(x, (datetime.datetime, datetime.date)) else x
)

用isinstance直接检查元素类型,匹配到日期/时间类型就替换为pd.NA(Pandas推荐的空值表示,适配字符串列)。

情况2:同时混入datetime对象和字符串格式的日期

如果列里还存在像"2023-10-01"这样的字符串格式日期,需要一并替换的话,可以结合日期解析来识别:

import pandas as pd
import datetime

# 标记能被解析为日期的行
can_parse_date = pd.to_datetime(df['target_col'], errors='coerce').notna()
# 标记本身就是datetime/date类型的行
is_date_type = df['target_col'].apply(lambda x: isinstance(x, (datetime.datetime, datetime.date)))

# 满足任一条件的行替换为空值
df.loc[can_parse_date | is_date_type, 'target_col'] = pd.NA

pd.to_datetime(..., errors='coerce')会把无法解析的内容转为NaT,notna()筛选出能解析为日期的字符串;再和类型判断的结果合并,批量替换目标行。

最优选择

  • 若仅存在datetime/date类型混入,优先用情况1的方法,类型判断速度快,逻辑简单。
  • 若包含字符串格式的日期,用情况2的方法覆盖所有场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:15:41