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

如何删除Pandas DataFrame中指定日期间存在NaN值的列

Pandas指定时间区间内无NaN值列筛选方案

核心逻辑

仅判断目标时间区间内各列是否存在缺失值,保留该区间内无缺失的列,其余时间段的缺失值不影响筛选结果。

实现代码

首先确保你的DataFrame的Date列为datetime类型且已设为索引:

import pandas as pd

# 预处理:日期格式转换与索引设置(如果已完成可跳过)
df["Date"] = pd.to_datetime(df["Date"])
df = df.set_index("Date")

核心筛选逻辑:

# 提取目标时间区间的子数据集
target_df = df.loc["1959-03-01":"1959-06-01"]
# 筛选出目标区间内无NaN的列名
keep_columns = target_df.columns[target_df.isna().sum(axis=0) == 0]
# 从原数据中取出符合要求的列
result_df = df[keep_columns].reset_index() # 若需要保留Date为普通列可添加reset_index()

结果说明

运行上述代码后,result_df即为你需要的输出结果:仅保留col1、col5两列,其余列因在1959-03-01至1959-06-01区间内存在NaN值被剔除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:06:03