将pandas dataframe中的datetime
列之一转换为int.
时遇到问题,我的代码是:
df['datetime_column'].astype(np.int64)
我得到的错误是:
以10为底的int()无效文字:'2018-02-25 09:31:15'
由于我其他datetime
列中的某些转换工作正常,我对发生的事情一无所知。可以转换为int
的日期范围是否存在问题?
答案 0 :(得分:0)
从您的评论看来,您似乎已经解决了问题。我的猜测是,您在创建数据框时未指定应将列读取为字符串以外的任何内容,因此它是字符串。如果我是对的,并且您检查列的类型,它应该显示为对象。如果您在该列中检查单个条目,则该条目应显示为字符串。
如果问题仍然存在,请继续。
答案 1 :(得分:0)
您将使用
df['datetime_colum'].apply(lambda x:x.toordinal())
如果失败,则原因可能是您的列是一个对象,而不是日期时间。所以你需要:
df['datetime_colum'] = pd.to_datetime(df['datetime_colum'])
在发送到序数之前。
如果您正在进行要素工程,则可以尝试在date1和date2之间创建日期,通过查看月份获取布尔值(如果是冬季,夏季,秋天或春季),如果有时间,则获取布尔值。早晨,中午或晚上,但所有这些都取决于您的机器学习问题。