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

如何筛选DataFrame中sample_received或result_received≥指定日期的行?

按日期条件筛选DataFrame行

原始数据

用户提供的DataFrame如下:

import pandas as pd

df = {'sample_received': {1: 'NaN',
2: 'NaN',
17: 'NaN',
3: 'NaN',
4: 'NaN',
5: 'NaN',
6: 'NaN',
7: 'NaN',
8: 'NaN',
9: 'NaN',
10: 'NaN',
11: 'NaN',
12: 'NaN',
13: 'NaN',
14: '2022-08-01 20:15:28',
15: '2022-08-01 20:12:56',
16: '2022-08-01 20:18:19'},
'result_received': {1: '2022-07-28 12:25:37',
2: '2022-07-30 12:37:37',
17: '2022-07-28 12:45:37',
3: '2022-07-28 12:48:37',
4: '2022-07-28 12:49:37',
5: '2022-07-28 12:50:37',
6: '2022-07-28 12:21:37',
7: '2022-07-28 12:52:37',
8: '2022-07-28 12:54:37',
9: '2022-08-01 11:55:40',
10: '2022-08-01 13:56:15',
11: '2022-08-01 13:57:15',
12: '2022-08-01 13:58:28',
13: '2022-08-01 13:59:28',
14: '2022-08-02 08:33:39',
15: '2022-08-02 08:35:39',
16: '2022-08-02 08::39'},
'status': {1: 'Failed',
2: 'Failed',
17: 'Approved',
3: 'Approved',
4: 'Approved',
5: 'Approved',
6: 'Approved',
7: 'Approved',
8: 'Approved',
9: 'Approved',
10: 'Approved',
11: 'Approved',
12: 'Approved',
13: 'Approved',
14: 'Approved',
15: 'Approved',
16: 'Approved'}}
df = pd.DataFrame(df)

需求说明

筛选满足以下任一条件的行:

  • sample_received列日期≥2022年8月1日(该列存在字符串'NaN'形式的缺失值,此时只需result_received列符合条件即可保留)
  • result_received列日期≥2022年8月1日(同理,该列若有格式错误或缺失,不影响另一列的判断)

解决方案

步骤1:转换日期列并处理错误值

先将两个日期列转为datetime类型,把无效值(字符串'NaN'、格式错误的日期)自动转为缺失值pd.NaT:

# errors='coerce'将无效格式转为NaT
df['sample_received'] = pd.to_datetime(df['sample_received'], errors='coerce')
df['result_received'] = pd.to_datetime(df['result_received'], errors='coerce')

步骤2:定义筛选条件并筛选

利用布尔索引实现"或"逻辑筛选,pd.NaT在比较时会返回False,因此当某一列是缺失值时,只会判断另一列的条件:

# 构建筛选条件
filter_condition = (df['sample_received'] >= '2022-08-01') | (df['result_received'] >= '2022-08-01')

# 应用筛选得到结果
filtered_df = df[filter_condition]

最终结果

执行后,filtered_df会包含索引为9、10、11、12、13、14、15、16的行,这些行均满足任一日期列≥2022年8月1日的条件。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:16:59