python - 通过比较来自两个不同列的日期来过滤 DataFrame

标签 python pandas date datetime dataframe

我有一个如下所示的数据框:

   Publication Date        Date  Value State
0        2018-12-12  2018-12-11    2.0    AL
1        2018-12-12  2018-12-11    1.0    AZ
2        2018-12-12  2018-12-11    1.0    AK
3        2018-12-12  2018-12-11    2.0    NJ
4        2018-12-12  2018-12-11    1.5    NY
5        2018-12-12  2018-12-12   12.0    AL
6        2018-12-12  2018-12-12   13.0    AZ
7        2018-12-12  2018-12-12   14.0    AK
8        2018-12-12  2018-12-12   12.0    NJ
9        2018-12-12  2018-12-12   11.5    NY
10       2018-12-13  2018-12-12    2.0    AL
11       2018-12-13  2018-12-12    3.0    AZ
12       2018-12-13  2018-12-12    6.0    AK
13       2018-12-13  2018-12-12    1.0    NJ
14       2018-12-13  2018-12-12    4.0    NY

我想删除 Publication date = Date + 1 所以当 Publication Date = 2018-12-12 Date = 2018-12-11 所有这些值都被删除。

它看起来像:

 Publication Date       Date  Value State
       2018-12-12 2018-12-12   12.0    AL
       2018-12-12 2018-12-12   13.0    AZ
       2018-12-12 2018-12-12   14.0    AK
       2018-12-12 2018-12-12   12.0    NJ
       2018-12-12 2018-12-12   11.5    NY

最简单的方法是什么?

最佳答案

得到一个掩码,用它来过滤df:

m = df['Publication Date'].eq(df['Date'] + pd.Timedelta(1, unit='D'))
df[~m]

  Publication Date       Date  Value State
5       2018-12-12 2018-12-12   12.0    AL
6       2018-12-12 2018-12-12   13.0    AZ
7       2018-12-12 2018-12-12   14.0    AK
8       2018-12-12 2018-12-12   12.0    NJ
9       2018-12-12 2018-12-12   11.5    NY

如果“出版日期”和“日期”不是日期时间列,请使用 pd.to_datetime(..., errors='coerce')先胁迫他们。

关于python - 通过比较来自两个不同列的日期来过滤 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54152119/

相关文章:

sql-server - 循环遍历 SQL Server 中的日期范围

python - 更改 DateTimeIndex 的日期

python - Django-Compressor 在实际存在时找不到文件

python - 我如何将一个小部件添加到 FloatLayout 内 ScrollView 内的 StackLayout 中?

python - Pandas - 写入 to_csv 时的十进制格式而不是科学格式

javascript - 如何在 Javascript 中正确解析日期?

javascript - 使用此格式的 javascript 获取日期 [MM/DD/YY]

python - Python 中的自定义错误消息

python - 删除 pandas 中的列

python - Pandas:选择第一个不再为负数的值,返回该行