如果数据使用熊猫在列表中匹配,如何删除行

时间:2019-07-31 21:39:14

标签: python-3.x pandas dataframe

我的df是下面给出的每小时数据集:

time                    Open
2017-01-01 00:00:00     5.2475
2017-01-01 01:00:00     5.2180
2017-01-01 02:00:00     5.2128
...., ....
2017-12-31 23:00:00     5.7388

如果与该列表中的row Date相匹配,我想删除/删除Series

remove = ['2017-01-01','2017-05-21', '2017-09-19']

请注意,remove中的数据是单个Day,而df中的数据是hourly

我想删除与hourly中的Day匹配的所有remove数据

我做了什么?

1:我尝试了df2 = df[~df.time.str.startswith(remove)],但是它不起作用,并给了我浮点错误。

2:我也尝试过df2 = df[~df.time.isin(a)],但只有部分匹配完全不匹配时,它才会删除。

您能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

尝试

df2 = df[~df.time.dt.normalize().isin(remove)]

.normalize删除数据的时间元素,以便您可以与日期进行匹配。

print(df2)


  time  Open
4   2017-12-31 23:00:00     5.7388