Количество несовместимых форматов дат в пандах - PullRequest
0 голосов
/ 01 октября 2019

У меня есть столбец типа 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' и получитьколичество несовместимых форматов в первую очередь. Затем измените значения.

Можно ли этого добиться?

1 Ответ

0 голосов
/ 08 октября 2019

Код ниже будет работать. Однако, как отметил Майкл Гарднер, он не будет различать дни и месяцы, если день 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)
...