小编Fre*_*ers的帖子

设置年份的第一个日期,当 pandas 数据框中只有年份时

我在一个 pandas 数据框中有一个名为“date”的列名称,这是前 10 行:

0    22-Oct-2022
1     3-Dec-2019
2    27-Jun-2022
3           2023
4    15-Jul-2017
5           2019
6     7-Sep-2022
7           2021
8    30-Sep-2022
9    17-Aug-2021
Run Code Online (Sandbox Code Playgroud)

我想将所有这些日期转换为例如:

0    2023-05-19 
1    2023-01-20 
2    ...
Run Code Online (Sandbox Code Playgroud)

对于那些只有 YEAR 的行,我想将其设置为例如,如果原始 df 有:

0           2019
1           2021
Run Code Online (Sandbox Code Playgroud)

5           2019-01-01
7           2021-01-01
Run Code Online (Sandbox Code Playgroud)

换句话说,我的意思是我想在这种情况下设置今年的第一个日期,但保留原始年份而不是当前年份。

我试过:

df['date'] = pd.to_datetime(df['date'], errors='coerce', format='%d-%b-%Y')
Run Code Online (Sandbox Code Playgroud)

然而它正在生成 NaT 值。我希望你们能理解这个案例,如果有任何解决这个问题的想法,我将不胜感激

谢谢。

python data-analysis pandas data-preprocessing

0
推荐指数
1
解决办法
125
查看次数