Как определить функцию, которая проверяет каждый столбец dtype 'объекта' и получает те столбцы, которые можно преобразовать в формат datetime - PullRequest
0 голосов
/ 19 июня 2020

Ниже я пробовал, но не очень хорошо работал.

def print_dtcols(DF):
  colms = DF.columns.values[DF.dtypes.values == 'object']
  names = []
  for colm in colms:
    try:
      DF[colm] = pd.to_datetime(DF[colm], infer_datetime_format=True, errors = 'raise')
      names.append(colm)
    except ValueError:
      pass
  return names
import pandas as pd
df = pd.DataFrame({'0': ['a', 'b', 'c','d','e'],
                   '1': ['2015-12-27','2015-12-28', '2015-12-29','2015 12-31 10:00','2016/01/01 15:00'],
                   '2': [11,12,13,14,15],
                   '3': ['2015-12-31','2015-12-29', '2015-12-30','2016-01 11 23:59','2016/02/01 22:00'],
                   '4': ['2015-02-31','2015-02-29', '2015-02-30','2016-03 11 23:59','2016/04/01 22:00'],
                   '5': ['2015-04-31','2015-04-29', '2015-04-30','2016-05 11 23:59','2016/06/01 22:00'],
                   '6': ['2015-04-31','2015-04-29', '2015-04-30','2016-05 11 23:59','2016/06/01 22:00']})

print_dtcols(df)

результат был ['1', '3'], и я ожидал, что это будет ['1', «3», «4», «5», «6»]

1 Ответ

0 голосов
/ 19 июня 2020

Обнаружены неправильные даты, из-за которых не работала функция определения. В апреле 31-го дня нет, поэтому код не работает. Подправил даты и теперь работает.

...