【问题标题】:Pandas - Convert dictionary to dataframe - keys as columnsPandas - 将字典转换为数据框 - 键作为列
【发布时间】:2016-11-10 13:01:07
【问题描述】:

我有一个包含 .csv 文件的文件夹,其中包含以下格式的时间序列:

1   0.950861
2   2.34248
3   2.56038
4   3.46226
...

我通过遍历包含文件的文件夹并将每个文本文件传递给字典来访问这些文本文件:

data_dict = {textfile: pd.read_csv(textfile, header=3, delim_whitespace=True, index_col=0) for textfile in textfiles}

我想合并包含彼此相邻的数据的列,并以字典键作为索引(文本文件的路径名)。它们都具有相同的行号。

到目前为止,我尝试将字典传递给 pd.Dataframe,如下所示:

df = pd.DataFrame.from_dict(data_dict, orient='index')

其实orientation需要是默认的'columns',但是会报错: 值错误:如果使用所有标量值,则必须传递索引

如果我这样做,我会得到错误的结果: Excel_Output

这就是我将框架传递给 Excel 的方式:

writer = pd.ExcelWriter("output.xls")
df.to_excel(writer,'data', index_label = 'data', merge_cells =False)
writer.save()

我认为错误一定是在将字典传递给数据框时。 我试过 pd.concat/merge/append 但没有返回正确的结果。

提前致谢!

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    IIUC 你可以试试list comprehensionconcat

    data_list = [pd.read_csv(textfile, header=3, delim_whitespace=True, index_col=0) 
                 for textfile in textfiles]
    print (pd.concat(data_list, axis=1))
    

    【讨论】:

    • 好的,这很好用。我的错误是行号不匹配。我可以通过设置 ignore_index=True 来解决这个问题。字典方式和列表理解之间的区别是:字典键充当列标题,这在我的情况下非常有用。感谢您的帮助!
    猜你喜欢
    • 2014-06-12
    • 1970-01-01
    • 2021-08-24
    • 2019-02-22
    • 2017-07-16
    • 2020-12-22
    • 2016-10-23
    • 1970-01-01
    • 2018-09-12
    相关资源
    最近更新 更多