如何在布尔条件下过滤整个数据帧?

时间:2018-02-13 04:05:03

标签: python pandas

我在同一个数据框中有两个日期列。如果一组日期大于或等于另一列,我需要完全过滤数据框。

示例数据框:

id    updated         compare_date
0     2018-02-10      2018-02-11
1     2018-02-10      2018-02-11
2     2018-02-12      2018-02-11

我正在尝试的代码:

df_1 = df['compare_date'] >= df['updated'])

结果我回来的是一个布尔列表 df_1 = [True, True, True]

我想要的结果

 id    updated         compare_date
 2     2018-02-12      2018-02-11

我已确认dtypes是日期列的日期时间。

提前谢谢你。

2 个答案:

答案 0 :(得分:0)

您似乎需要通过您创建的布尔列表索引df1

df1 = df.loc[df['compare_date'].ge(df['updated'])]

示例:

>>> df
   id    updated compare_date
0   0 2018-02-10   2018-02-11
1   1 2018-02-10   2018-02-11
2   2 2018-02-12   2018-02-11

>>> df.dtypes
id                       int64
updated         datetime64[ns]
compare_date    datetime64[ns]
dtype: object

>>> df1 = df.loc[df['compare_date'].ge(df['updated'])]

>>> df1
   id    updated compare_date
0   0 2018-02-10   2018-02-11
1   1 2018-02-10   2018-02-11

答案 1 :(得分:-1)

NewTxID