使用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"
如何删除日期而不考虑时间?
答案 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))]