如何将熊猫数据框的datetime列转换为int?

时间:2018-12-22 05:37:20

标签: python pandas datetime dataframe type-conversion

中的datetime列之一转换为int.时遇到问题,我的代码是:

df['datetime_column'].astype(np.int64)

我得到的错误是:

  

以10为底的int()无效文字:'2018-02-25 09:31:15'

由于我其他datetime列中的某些转换工作正常,我对发生的事情一无所知。可以转换为int的日期范围是否存在问题?

2 个答案:

答案 0 :(得分:0)

从您的评论看来,您似乎已经解决了问题。我的猜测是,您在创建数据框时未指定应将列读取为字符串以外的任何内容,因此它是字符串。如果我是对的,并且您检查列的类型,它应该显示为对象。如果您在该列中检查单个条目,则该条目应显示为字符串。

如果问题仍然存在,请继续。

答案 1 :(得分:0)

您将使用

df['datetime_colum'].apply(lambda x:x.toordinal())

如果失败,则原因可能是您的列是一个对象,而不是日期时间。所以你需要:

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

在发送到序数之前。

如果您正在进行要素工程,则可以尝试在date1和date2之间创建日期,通过查看月份获取布尔值(如果是冬季,夏季,秋天或春季),如果有时间,则获取布尔值。早晨,中午或晚上,但所有这些都取决于您的机器学习问题。