首页 > 解决方案 > 如何使单列中的两种不同日期格式唯一?

问题描述

我有一列我不明白,但一列中有两种不同的格式。

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 日与指定的格式不匹配

标签: pythonpandasdataframedatetime

解决方案


to_datetime与这两种格式一起使用errors='coerce',如果不匹配并用另一个by或它们NaT替换缺失值,最后转换为字符串 by :SeriesSeries.combine_firstSeries.fillnaSeries.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

推荐阅读