Как проанализировать данные даты и времени с помощью метода .striptime ()? - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь проанализировать данные datetime в df, используя pandas модуль datetime. Однако я постоянно сталкиваюсь с одной и той же ошибкой. Я считаю, что мои синтаксические коды strftime правильные, но я все еще получаю ошибки.

potus = pd.read_csv('potus_visitors_2015.csv')


import datetime as dt

date_format = '%m/%d/%y %H:%M'

for i, row in potus.iterrows():
    start_date = row['appt_start_date']
    start_date = dt.datetime.strptime(start_date, date_format)
    row['appt_start_date'] = start_date

Но мне возвращается следующая ошибка:


ValueError                                Traceback (most recent call last)
<ipython-input-259-fa3f6f4c8c4b> in <module>
      5 for row in potus:
      6     start_date = row[2]
----> 7     start_date = dt.datetime.strptime(start_date, date_format)
      8     row[2] = start_date
      9 

~\anaconda3\lib\_strptime.py in _strptime_datetime(cls, data_string, format)
    575     """Return a class cls instance based on the input string and the
    576     format string."""
--> 577     tt, fraction, gmtoff_fraction = _strptime(data_string, format)
    578     tzname, gmtoff = tt[-2:]
    579     args = tt[:6] + (fraction,)

~\anaconda3\lib\_strptime.py in _strptime(data_string, format)
    357     if not found:
    358         raise ValueError("time data %r does not match format %r" %
--> 359                          (data_string, format))
    360     if len(data_string) != found.end():
    361         raise ValueError("unconverted data remains: %s" %

ValueError: time data 'm' does not match format '%m/%d/%y %H:%M' 

Буду признателен за любую помощь. Заранее спасибо!

1 Ответ

1 голос
/ 25 апреля 2020

Используйте to_datetime с вашим форматом и errors='coerce' для преобразования несоответствующих значений в пропущенные значения NaT:

potus['appt_start_date'] = pd.to_datetime(potus['appt_start_date'],
                                          format=date_format, 
                                          errors='coerce')
...