Pandas数据帧基于日期时间差删除多行



我将日期时间存储在Panda数据帧中,该数据帧看起来像dd/mm/yyyy hh:mm:ss

我想删除列x(日期时间(中的值在24小时内的所有行。

在1比1的基础上,我以前也这样做过,这似乎在drop函数中不起作用:

df.drop(df[(df['d2'] - df['d1']).seconds / 3600 < 24].index)
>> AttributeError: 'Series' object has no attribute 'seconds'

这应该能在中工作

df.loc[ (df.d2 - df.d1) >= datetime.timedelta(days=1) ]

答案很简单

import pandas as pd
df = pd.read_csv("test.csv")
df["d1"] = pd.to_datetime(df["d1"])
df["d2"] = pd.to_datetime(df["d2"])

现在,如果您尝试从其他中减去列

df["first"] - df["second"]

输出将在几天内,因此,正如@kaan建议的

df.loc[(df["d2"] - df["d1"]) >= pd.Timedelta(days=1)] 

最新更新