我正在使用下面的代码将日期时间值转换为整数。除了NaT值之外,它工作得很好。如果在迭代中执行此操作,如何处理NaT值以避免出现诸如“NaTType不支持时间元组”之类的错误?
import time
from datetime import datetime
t=datetime.now()
t1=t.timetuple()
int(time.mktime(t1)/60/60/24)
下面是创建示例数据的代码,以及到目前为止我尝试迭代的内容:
创建数据:
df = pd.DataFrame(data={'date':['05/16/16',''], 'Indicator':[1,0]})
df['date']=pd.to_datetime(df['date'])
数据:
Indicator date
0 1 2016-05-16
1 0 NaT
迭代代码:
def date2int(df):
if df.date:
t=df['date']
t1=t.timetuple()
return int(time.mktime(t1))
df['date2int']=df.apply(date2int,axis=1)
错误消息:
回溯(最近一次呼叫时间):
文件“”,第1行,在 df['date2int']=df.apply(date2int,axis=1)
文件“/Users/Chen/anaconda/lib/python2.7/site packages/pandas/core/frame.py”,4042行,在apply中 返回自身。应用标准(f,axis,reduce=reduce)
文件“/Users/Chen/anaconda/lib/python2.7/site packages/pandas/core/frame.py”,第4138行,在“应用”标准中 结果[i]=func(v)
文件“”,第4行,在date2int中 t1=时间元组()
文件“pandas/tslib.pyx”,第723行,在pandas.tslib.make_error_func.f中(pandas/tslib.c:16109)
值错误:(“NaTType不支持时间元组”,在索引1处发生u')
解决方案#1:
解决方案#2:
相关问题 更多 >
编程相关推荐