python - 如何将 Pandas 列中只有月份和年份的字符串转换为 Python 中另一种格式的日期时间?
问题描述
我有一个来自 PDF 文件的数据集,其中包含以下格式的日期列:JAN2021,我想将其转换为仅显示月份和年份的日期时间,但显示为 JAN-2021。我尝试使用下面的语句,但它不起作用,有什么办法可以通过更改数据来做到这一点(意思是不添加该月的一天作为更改)。
df2['MONTH1'] = pd.to_datetime(df2['MONTH1'], format="%mmm%YY")
任何反馈/提示将不胜感激。
解决方案
您可以使用pd.to_datetime
将月份-年份字符串(例如 JAN2021
)转换为日期时间格式。然后,使用将日期时间对象格式化为(例如)dt.strftime()
中所需的布局,如下所示:mmm-YYYY
Jan-2021
(假设您的数据框被调用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 官方文档。
推荐阅读
- haskell - 获取所有数据构造器上没有模式匹配的类型数据
- javascript - 使用 Jest 测试 ES6 类时出现问题
- java - Kafka Consumer在Spring MVC中的接口
- javascript - React Child prop 变量未定义,即使我之前定义了变量
- node.js - GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:56:26) 错误命令失败,退出代码为 1
- r - 检查 R 中的 NA 的两列之间不等式的有效方法?
- reactjs - 尝试同时使用 EventEmitter 和 useState。我究竟做错了什么?
- ssh - GitLab ssh over cloudflare 和代理
- java - BlueJ 和 Java 运行程序的基本问题
- python - 在数据框列之间插值