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

Pandas如何筛选a、b、c列无NaN且日期连续的行

实现代码

import pandas as pd

# 1. 将date列转为日期格式,避免字符串计算出错
df['date'] = pd.to_datetime(df['date'])

# 2. 先筛选a、b、c三列无空值的行
df_no_na = df.dropna(subset=['a', 'b', 'c'], how='any').copy()

# 3. 给连续日期的行分配相同分组ID:相邻日期差不等于1时,标记为新分组的起点
df_no_na['group_id'] = df_no_na['date'].diff().dt.days.ne(1).cumsum()

# 4. 筛选行数≥2的连续分组(如果要取最长的单段连续数据,可替换为下方注释代码)
group_size = df_no_na.groupby('group_id')['group_id'].transform('count')
result = df_no_na[group_size >= 2].drop(columns='group_id')

# 取最长单段连续数据的替换代码:
# max_group = df_no_na.groupby('group_id').size().idxmax()
# result = df_no_na[df_no_na['group_id'] == max_group].drop(columns='group_id')

运行后result即为符合要求的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:54:02