Не удается добавить заголовки столбцов к фрейму данных при использовании to_dict() в pandas

#python #pandas #dictionary

#python #pandas #словарь

Вопрос:

У меня есть dict в паре ключ / значение переменных (datetime / object), и у меня возникают проблемы с добавлением заголовка и dtypes к типам данных.

Я могу создать фрейм данных без заголовков столбцов и dtype объекта, чего я не хочу. Я пытаюсь использовать dtype и параметры столбца, но сталкиваюсь только с ошибками.

Мой код для создания моего dict:

 for files_local in glob.glob(share_dr   '/**/*.csv', recursive=True):
    match = re.search(get_matches_regex, files_local)
    if match and match.group(0):
        d = datetime.datetime.strptime  # short form
        dict_of_files_local[d(match.group('fileDate'), '%Y%m%d_%H%M%S')] = files_local
  

Мой dict при циклическом просмотре:

 2019-02-07 09:11:39 C:csvmyfile_20190207_091139_092739.csv
2019-02-08 03:08:11 C:csvmyfile_20190208_030811_031734.csv
  

Все это отлично работает, но когда я пытаюсь добавить это в фрейм данных с помощью:

 df = pd.DataFrame.from_dict(dict_of_files_local, orient='index', dtype=['datetime', 'object'], columns=['Timestamp', 'Filename'])
  

Я получаю сообщение об ошибке:

 TypeError: data type not understood
  

Почему это? Я думал, что pandas обладает отличной доступностью для анализа даты и времени?

Как я могу решить эту проблему? Кстати, я все еще новичок в python / pandas.

Большое спасибо!

Ответ №1:

Мне удалось найти обходной путь, который заключается в простой передаче dict.items() в параметр pd.DataFrame.

Мой код ниже:

 df = pd.DataFrame(dict_of_files_local.items(), columns=['Timestamp', 'Filename'])
  

Теперь выводит следующее:

             Timestamp                           Filename
0 2019-02-07 09:11:39  C:csvmyfile_20190207_091139_...
1 2019-02-08 03:08:11  C:csvmyfile_20190208_030811_...