从数据集中提取年份的年份显示为小数点



试图在python 中从数据集中提取年份

df["YYYY"] = pd.DatetimeIndex(df["Date"]).year

year在新列中显示为小数点。

YYYY
2001.0
2002.0
2015.0
2022.0

如何让年份不带小数点?

您的输入中可能有null值,从而导致NaN和列的浮点类型。

无缺失值:

pd.DatetimeIndex(['2022-01-01']).year
Int64Index([2022], dtype='int64')

缺少值:

pd.DatetimeIndex(['2022-01-01', '']).year
Float64Index([2022.0, nan], dtype='float64')

我建议使用pandas.to_datetimeconvert_dtypes:

pd.to_datetime(pd.Series(['2022-01-01', ''])).dt.year.convert_dtypes()
0    2022
1    <NA>
dtype: Int64

或者直接从初始字符串中提取年份。但为此,我们需要一个输入样本。

问题的示例程序

import pandas as pd
df = pd.DataFrame({'date': ['3/10/2000', '3/11/2000', '3/12/2000']})
df['date'] = pd.to_datetime(df['date'])
df['year'] = pd.DatetimeIndex(df['date']).year
print(df['year'])

熊猫自己照顾日期

如果没有,我们可以直接指定为

df["date_feild"] = pd.to_datetime(df["date_feild"])

希望它能让你明白。

如果不能,你可以指定df样本吗

相关内容

  • 没有找到相关文章

最新更新