python - 如何使单列中的两种不同日期格式唯一?
问题描述
我有一列我不明白,但一列中有两种不同的格式。
df['Date'] = [6/24/2019,6/14/2019,2019-09-06 00:00:00,6/14/2019,6/14/2019]
我想进一步处理它,所以我想以单一格式制作它。
df['Date'] = [6/24/2019,6/14/2019,9/06/2019,6/14/2019,6/14/2019]
我尝试过这样的事情
data['New_date'] = pd.to_datetime(df['Date'], format = '%m/%d/%Y')
但它给了我这个错误
ValueError:时间数据 2019 年 6 月 24 日与指定的格式不匹配
解决方案
to_datetime
与这两种格式一起使用errors='coerce'
,如果不匹配并用另一个by或它们NaT
替换缺失值,最后转换为字符串 by :Series
Series.combine_first
Series.fillna
Series.dt.strftime
s1 = pd.to_datetime(data['Date'], format='%Y-%d-%m %H:%M:%S', errors='coerce')
s2 = pd.to_datetime(data['Date'], format = '%m/%d/%Y', errors='coerce')
#2 possible solutions
data['new'] = s1.fillna(s2).dt.strftime('%m/%d/%Y')
data['new'] = s1.combine_first(s2).dt.strftime('%m/%d/%Y')
print (data)
Date new
0 6/24/2019 06/24/2019
1 6/14/2019 06/14/2019
2 2019-09-06 00:00:00 06/09/2019
3 6/14/2019 06/14/2019
4 6/14/2019 06/14/2019
推荐阅读
- android - 星期几一天一天
- html - 在具有自定义限制的多行上显示 div
- r - R中的数据透视图和分组条形图
- intellij-idea - Intellij - 事件日志字体
- c# - xml 反序列化产生的对象只有 1 个元素,尽管 xml 有多个元素
- rest - 在 DSS 中使用 Base64 编码证书调用服务器签名服务
- c# - XpsDocumenWriter 从 Windows 服务挂起,但从控制台运行时工作正常
- google-analytics - Google 跟踪代码管理器 - 在触发点击代码时从另一个元素返回 href
- java - Tomcat 7 和 Spring boot 大战启动
- function - 仅针对 LUA 中的特定实例的覆盖功能