#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_...