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

如何筛选存储datetime.date类型的object dtype列?

筛选存储datetime.date类型的object列

方法一:逐列验证元素类型

遍历DataFrame所有列,同时满足两个条件:列的dtype为object,且列内所有元素均为datetime.date类型。

import datetime
import pandas as pd

# 示例DataFrame
df = pd.DataFrame({
    'num': [0, 1, 2],
    'date_col': [datetime.date(2013,4,26), datetime.date(2007,4,25), datetime.date(2020,9,21)]
})

# 筛选符合条件的列名
date_columns = [
    col for col in df.columns
    if df[col].dtype == 'O'
    and all(isinstance(val, datetime.date) for val in df[col])
]

# 提取目标列
result_df = df[date_columns]

方法二:利用类型唯一性筛选

先统计每列的元素类型数量,筛选出仅有一种类型的object列,再验证该类型为datetime.date:

import datetime
import pandas as pd

# 获取每列的唯一类型数量
unique_type_counts = df.applymap(type).nunique()

# 初步筛选:dtype为object且仅有一种元素类型的列
candidate_cols = unique_type_counts[(df.dtypes == 'O') & (unique_type_counts == 1)].index

# 二次验证类型是否为datetime.date
date_columns = [
    col for col in candidate_cols
    if isinstance(df[col].iloc[0], datetime.date)
]

result_df = df[date_columns]

处理含缺失值的情况

如果列中存在NaN等缺失值,可调整判断逻辑,允许缺失值存在:

date_columns = [
    col for col in df.columns
    if df[col].dtype == 'O'
    and all(isinstance(val, datetime.date) or pd.isna(val) for val in df[col])
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:05:32