我有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!
答案 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')]