Timedelta方法无法正常工作,并指出datetime模块不包含它

时间:2018-11-26 13:04:09

标签: python

我是python的新手,正尝试使用pandas DataFrame中的某些datetime列。两个变量'EndDate''StartDate'是日期时间类型,并且相减后具有负值,表示数据无效。

我正在尝试查找这些有问题的行并将其从整个数据集中删除,并且可能会以错误的方式进行处理。

我尝试使用timedelta来查找总天数小于0的地方,该方法无法以这种方式工作。

有人有办法吗?

任何帮助将不胜感激。谢谢

2 个答案:

答案 0 :(得分:2)

您要导入timedelta,而不是datetime模块。只需使用timedelta而不是datetime.timedelta。代码中的datetime指的是您也导入的datetime ,而不是datetime模块。

导入from ... import X时,您在代码中将其称为X
当您仅import Y(整个模块)时,您进行Y.Z以访问其成员。

答案 1 :(得分:1)

由于您使用的是熊猫:请勿使用标准库中的datetime,请使用熊猫对象和方法。

# convert series to Pandas datetime if not already done so
date_cols = ['StartDate', 'EndDate']
energy[date_cols] = energy[date_cols].apply(pd.to_datetime, errors='coerce')

# construct Boolean mask and filter dataframe
mask = energy['EndDate'] >= energy['StartDate']
energy = energy.loc[mask]