使用布尔逻辑基于多个条件过滤数据帧

时间:2020-07-31 19:23:06

标签: python pandas dataframe

如果end_dateNanend_date大于当前日期,我正在尝试根据以下条件过滤数据帧。 我到底该怎么做? 我正在使用以下代码,我知道| and &运算符是序列运算符。

end_series = ((~df.end_date.notna()) | (df.end_date > datetime.datetime.utcnow().date()))
new_df = df[(df.column1 > 0)  &  end_series].copy()

1 个答案:

答案 0 :(得分:2)

您可以这样做:

current_date = pd.to_datetime("today").date()
new_df = df.query("end_date.isna() or (end_date > @current_date) and column1 > 0")