在熊猫中使用to_dict()时无法将列标题附加到数据框

时间:2019-03-26 14:50:00

标签: python pandas dictionary

我有一个(日期时间/对象)变量的键/值配对字典,在将标头和dtypes附加到数据类型时遇到麻烦。

我可以制作一个没有列标题和dtype对象的数据框,这是我不想要的。我正在尝试使用dtype和column参数,但只会遇到错误。

我用来创建字典的代码:

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

遍历我的字典:

2019-02-07 09:11:39 C:\csv\myfile_20190207_091139_092739.csv
2019-02-08 03:08:11 C:\csv\myfile_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

这是为什么?我以为熊猫有很好的日期时间解析能力?

如何解决此问题?对于python / pandas BTW来说还是相当新的东西。

非常感谢!

1 个答案:

答案 0 :(得分:0)

我设法找到一种解决方法,只需将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:\csv\myfile_20190207_091139_...
1 2019-02-08 03:08:11  C:\csv\myfile_20190208_030811_...