选择包含至少为特定日期的所有行



我有以下数据帧:

代码-

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'}}
pd.DataFrame(df)

我想选择sample_receivedorder_received至少在8月1日的所有行。最有效的方法是什么?主要问题是,"sample_received"列可能有一个未提及的日期。但是,当"result_received"列包含8月1日的日期时(在本例中(,我希望数据帧包含此日期。或者反过来。

提前谢谢。

这样就可以了。

cols = df.apply(lambda x: True if x.sample_received >= pd.Timestamp("2022-08-01") or x.order_received >= pd.Timestamp("2022-08-01") else False, axis=1)
df[cols]

最新更新