熊猫将年份列转换为日期列

时间:2020-09-02 12:30:55

标签: python pandas dataframe datetime

我有一个熊猫数据框,其中的列包含年份:

col1 col2 ... year ... coln
 -    -   ... 2020 ...  -
 -    -   ... 2021 ...  -
 -    -   ... 2022 ...  -

我想通过将年份映射到该年的第1个日期来将其转换为日期,例如:

col1 col2 ... year       ... coln
 -    -   ... 2020-01-01 ...  -
 -    -   ... 2021-01-01 ...  -
 -    -   ... 2022-01-01 ...  -

我尝试过:

df['year'] = pd.to_datetime(df['year'], format='%Y%m%d')

但这给了我这个错误:

ValueError:时间数据“ 2020”与格式“%Y%m%d”(匹配)不匹配

我该如何解决?

2 个答案:

答案 0 :(得分:3)

%Y用于YYYY格式的比赛年份,但我认为应该省略此参数:

df['year'] = pd.to_datetime(df['year'], format='%Y')

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

答案 1 :(得分:1)

您可以尝试以下方法:

df['year'] = df['year'].astype('str') + "-01-01"
print(df)