2024-07-03 01:35:47 发布
网友
我有一个来自PDF文件的数据集,其中包含以下格式的日期列:JAN2021,我想将其转换为只显示月份和年份的datetime,但显示为JAN-2021。我尝试使用下面的语句,但它不起作用,是否有任何方法可以通过修改数据来做到这一点(也就是说,不添加该月的一天作为修改)
df2['MONTH1'] = pd.to_datetime(df2['MONTH1'], format="%mmm%YY")
如有任何反馈/提示,将不胜感激
您可以使用^{}将月-年字符串(例如JAN2021)转换为日期时间格式。然后,使用^{}将datetime对象格式化为mmm-YYYY(例如Jan-2021)中所需的布局,如下所示:
JAN2021
mmm-YYYY
Jan-2021
(假设您的数据帧名为df,列名为Col1):
df
Col1
df['Col_new'] = pd.to_datetime(df['Col1'], format='%b%Y').dt.strftime('%b-%Y')
结果:
print(df) Col1 Col_new 0 JAN2021 Jan-2021 1 FEB2021 Feb-2021 2 MAR2021 Mar-2021 3 APR2021 Apr-2021
您在试用代码中使用了无效的格式字符串"%mmm%YY"。有关有效格式字符串及其含义的完整列表,以及示例,您可以参考Python官方文档here
"%mmm%YY"
转换将为格式添加一天
https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html
pd.to_datetime looks for standard designations of the datetime component in the column names, including:required: year, month, dayoptional: hour, minute, second, millisecond, microsecond, nanosecond
pd.to_datetime looks for standard designations of the datetime component in the column names, including:
required: year, month, day
optional: hour, minute, second, millisecond, microsecond, nanosecond
因此,在转换时,您可以获得一天(时间是可选的):
pd.to_datetime('JAN2021', format='%b%Y') >> Timestamp('2021-01-01 00:00:00')
您可以使用^{} 将月-年字符串(例如} 将datetime对象格式化为
JAN2021
)转换为日期时间格式。然后,使用^{mmm-YYYY
(例如Jan-2021
)中所需的布局,如下所示:(假设您的数据帧名为
df
,列名为Col1
):结果:
您在试用代码中使用了无效的格式字符串
"%mmm%YY"
。有关有效格式字符串及其含义的完整列表,以及示例,您可以参考Python官方文档here转换将为格式添加一天
https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html
因此,在转换时,您可以获得一天(时间是可选的):
相关问题 更多 >
编程相关推荐