我有一个如下所示的数据框:
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/