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

k.k*_*o3n 6 python datetime pandas

我的数据有一个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
Run Code Online (Sandbox Code Playgroud)

但是 rusults 是浮动的

year    month   day
2016.0  11.0    5.0
Run Code Online (Sandbox Code Playgroud)

我想要

year    month   day
2016    11      5
Run Code Online (Sandbox Code Playgroud)

帮助表示赞赏。

jez*_*ael 9

我认为浮点数的原因是缺少值,所以如果使用 pandas 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')
Run Code Online (Sandbox Code Playgroud)