最多两个日期的格式完全不同

时间:2016-08-05 02:39:48

标签: python datetime pandas

我有2列,其中包含日期,我想创建第3列,其中最多有2个日期:

df['xxx_MaxSettDate'][0]
Out[186]: Timestamp('2017-01-20 00:00:00')
df['yyy_MaxSettDate'][0]
Out[166]: NaT

这是我的最大功能:

 df['MaxSettDate']=df[['xxx_MaxSettDate','yyy_MaxSettDate']].max(axis=1)

输出:

df['MaxSettDate'][0]
Out[187]: 1.4848704e+18

我希望能够在此日期进行操作,例如删除所有低于1米的日期

所以我这样做:

onemonthdate = date.today() + timedelta(30)
df = df[(df['MaxSettDate']>onemonthdate)]

这会导致错误:

TypeError: unorderable types: float() > datetime.date()

关于如何实现这一目标的想法?我对所提供的所有解决方案都非常困惑。你也可以指点我能阅读并理解python中的整个日期范例更好的东西..谢谢vm!

1 个答案:

答案 0 :(得分:1)

更新:

您可以先将MaxSettDate列转换为日期时间:

df['MaxSettDate'] = pd.to_datetime(df['MaxSettDate'])

演示:

In [41]: pd.to_datetime(1.4848704e+18)
Out[41]: Timestamp('2017-01-20 00:00:00')

OLD amswer:

我会用pandas Timedelta:

df = df[df['MaxSettDate'] > pd.datetime.now() + pd.Timedelta('30 days')]