python - 当列类似于“Jan-18”时,如何将熊猫列转换为日期?
问题描述
当给出的值如“Feb-15”需要为“01-02-2015”时,将列值转换为日期“DD-MM-YYYY”的有效方法是什么。如果是“Dec-46”,则必须返回“01-12-1946”。
解决方案
您可以将格式传递'%b-%y'
给to_datetime
:
In[42]:
df = pd.DataFrame({'date':["Feb-15","Dec-46"]})
df['new_date'] = pd.to_datetime(df['date'], format='%b-%y')
df
Out[42]:
date new_date
0 Feb-15 2015-02-01
1 Dec-46 2046-12-01
请注意,新dtype
的是datetime64
,您无法控制显示输出,如果您坚持,DD-MM-YYYY
则必须使用以下方法转换为字符串dt.strftime
:
In[43]:
df['str_date'] = df['new_date'].dt.strftime('%d-%m-%Y')
df
Out[43]:
date new_date str_date
0 Feb-15 2015-02-01 01-02-2015
1 Dec-46 2046-12-01 01-12-2046
但是如果您需要执行算术运算或过滤,那么您的字符串就没有那么有用了
编辑
您不能存储早于 1970 年的日期,因此'01-01-1946'
不是可以表示为的有效日期时间datetime64
推荐阅读
- python - 熊猫不识别 TZ 感知日期时间
- javascript - vue js数据中的对象方法
- node.js - NodeJS express 自动创建的应用程序绑定到服务器
- angular - 应该如何在模型中定义字段 dateIni
- amazon-web-services - 如何使用 boto3 附加或更新 API 网关资源策略
- css - 根 div 填充 React(样式化组件)
- java - 错误:捕获异常 [错误:不支持的命令 [selectFrame | 索引=1 | ]] 将代码从 Selenium IDE 导出到 Webdriver
- r - 在 ggplot2 的 x 轴上重复年份
- java - Eclipse E4:“IWorkbenchWindow”未注入 ProgressRegion
- javascript - 遍历 objs 数组,检查值是否存在,返回相反的值 / Javascript