删除熊猫中具有特定日期的行

时间:2020-09-15 02:07:18

标签: python pandas

使用python 3.7,pandas 1.1.1

我有一个带有datetimeindex的数据帧,并且date_list的列表= [“ 2020-07-19”,“ 2020-07-24”,...等]

我想删除数据框中date_list中包含日期的所有行。

我的datetimeindex也包含各种hh:mm:ss,并且如果日期在date_list中,我想删除它的时间是什么

数据帧看起来像这样:

      time              data
2020-07-19 23:52:02       1
2020-07-20 13:44:02       1
2020-07-22 23:52:02       1
2020-07-24 08:52:02       1
2020-07-24 21:52:02       1

所需的输出将是:

      time              data
2020-07-20 13:44:02       1
2020-07-22 23:52:02       1

删除date_list中的日期

跟随How can I delete rows for a particular Date in a Pandas dataframe? 我已经尝试过df.drop(pd.to_datetime("2020-07-19"))赋予KeyError: "[Timestamp('2020-07-19 00:00:00')] not found in axis"

如何删除日期而不考虑时间?

3 个答案:

答案 0 :(得分:2)

由于您的MULTICORE=1 ARTILLERY_WORKERS=4与当天的time不完全相同,因此您可以使用00:00:00提取日期。然后,您可以使用normalize()

isin

如果date_list = pd.to_datetime(date_list) df[~df['time'].dt.normalize().isin(date_list)] 是索引:

time

答案 1 :(得分:2)

检查

df[~df.index.to_series().dt.date.isin(date_list)]

答案 2 :(得分:0)

或使用str.contains

df[~df["time"].str.contains('|'.join(date_list))]