Pandas 如何将数据帧日期时间列转换为int?

Pandas 如何将数据帧日期时间列转换为int?,pandas,dataframe,python,datetime,type-conversion,Pandas,Dataframe,Python,Datetime,Type Conversion,将中的datetime列转换为int时,我遇到了一个问题。我的代码是: df['datetime_column'].astype(np.int64) 我得到的错误是: 以10为基数的int()的文本无效:“2018-02-25 09:31:15” 我对正在发生的事情一无所知,因为我的其他一些datetime列的转换工作正常。可转换为int的日期范围是否存在问题 从你的评论来看,问题似乎是你自己解决的。我的猜测是,您在创建数据帧时没有指定该列应被读取为字符串以外的任何内容,因此它是一个字符串。如

将中的
datetime
列转换为
int时,我遇到了一个问题。
我的代码是:

df['datetime_column'].astype(np.int64)
我得到的错误是:

以10为基数的int()的文本无效:“2018-02-25 09:31:15”


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

从你的评论来看,问题似乎是你自己解决的。我的猜测是,您在创建数据帧时没有指定该列应被读取为字符串以外的任何内容,因此它是一个字符串。如果我是对的,并且您检查了列类型,它应该显示为object。如果选中列中的单个条目,它应显示为字符串

如果问题是其他问题,请跟进。

您可以使用

df['datetime_colum'].apply(lambda x:x.toordinal())
如果失败,原因可能是您的列是对象而不是日期时间。因此,您需要:

df['datetime_colum'] = pd.to_datetime(df['datetime_colum'])
在发送给ordinal之前


如果您正在进行功能工程,您可以尝试在date1和date2之间创建天数,通过查看月份获取冬季、夏季、秋季或春季的布尔值,如果您有时间,则获取上午、中午或晚上的布尔值,但这一切都取决于您的机器学习问题。

您希望将“2018-02-25 09:31:15”转换为什么整数?在我看来,这些值似乎超出了范围。但当我试图将它们转换为“float”时,我遇到了以下错误:无法将字符串转换为float:“2018-02-15 14:28:08”我想我忘了在将列转换为“int”之前将其转换为“datetime”。我将代码更新为:“pd.to_datetime(df['datetime_column']).astype(np.int64)”,转换工作正常。为什么要通过强制转换将datetime转换为int?你不想改为使用df['date\u time'].map(dt.datetime.toordinal)吗?非常感谢你的建议。我正在构建一个决策树模型,需要从datetime字段中提取一些特征。我提取了月、年、日、星期几、一天中的小时数、周末指标、当前日期的偏移量等。我只是通过添加新功能进行试验,因此只需通过强制转换即可进行转换。顺便说一下,datetime.toordinal和当前日期的偏移量应该是相关的,我想?非常感谢。这完全是同一个问题。