我在一个 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 值。我希望你们能理解这个案例,如果有任何解决这个问题的想法,我将不胜感激
谢谢。