Python:将日期时间提取为年、月和日,结果为浮点数



我的数据有一个像这样的datetime索引2016-11-05 23:40:00 .
我想将日期时间元素提取到年、月和日的三个新列中。我使用以下

import datetime as dt
df['year'] = df.index.year
df['month'] = df.index.month
df['day'] = df.index.day

但结果是浮动的

year    month   day
2016.0  11.0    5.0

我要

year    month   day
2016    11      5

任何帮助,不胜感激。

我认为浮点数的原因缺少值,所以如果使用熊猫 0.24+ 是可能的,请使用 Nullable Integer Data Type

df['year'] = df.index.year.astype('Int64')
df['month'] = df.index.month.astype('Int64')
df['day'] = df.index.day.astype('Int64')

只需使用 astype

import datetime as dt
df['year'] = df.index.year.astype(int)
df['month'] = df.index.month.astype(int)
df['day'] = df.index.day.astype(int)

如果有 Nan's 则使用 errors 参数:

df['year'] = df.index.year.astype(int, errors='ignore')

这将返回具有空索引的列的 nans

在 int 上转换它

import datetime as dt
df['year'] = int(df.index.year)
df['month'] = int(df.index.month)
df['day'] = int(df.index.day)

或者,如果你有很多列,最简单的可能是毕竟用于构造数据帧的代码:

df = df.astype(int)

相关内容

最新更新