Python 熊猫中日期格式不一致的计数
我有一个Python 熊猫中日期格式不一致的计数,python,date,Python,Date,我有一个object类型的列,它包含500行日期。我将列类型转换为date,并试图获得错误值的计数,以便修复它们 在列的示例中,您可以在第3行和第5行中看到错误值的示例 0 2018-06-14 1 2018-11-12 2 2018-10-09 3 2018-24-08 4 2018-11-12 5 11-02-2018 6 2018-12-31 如果我使用以下代码,我可以确定日期: dirtyData['date'] =
object
类型的列,它包含500行日期。我将列类型转换为date
,并试图获得错误值的计数,以便修复它们
在列的示例中,您可以在第3行和第5行中看到错误值的示例
0 2018-06-14
1 2018-11-12
2 2018-10-09
3 2018-24-08
4 2018-11-12
5 11-02-2018
6 2018-12-31
如果我使用以下代码,我可以确定日期:
dirtyData['date'] = pd.to_datetime(dirtyData['date'],dayfirst=True)
但是我想检查每一行的格式是否为%Y-%m-%d'
,并首先获取不一致格式的计数。然后更改值
有可能实现这一点吗?下面的代码可以工作。然而,正如迈克尔·加德纳所提到的,如果一天不超过12天,它将无法区分天和月
import datetime
import pandas as pd
date_list = ["2018-06-14", "2018-11-12", "2018-10-09", "2018-24-08",
"2018-11-12", "11-02-2018", "2018-12-31"]
series1 = pd.Series(date_list)
print(series1)
#The above code is to replicate your date series
count = 0
for item in series1:
try:
datetime.datetime.strptime(item, "%Y-%m-%d") #checks if the date format is Year, Month,Day.
except ValueError: #if there is a value error then it will count these errors
count += 1
print(count)
我不认为有任何方法可以区分y/m/d和y/d/m,除非日期大于12。