我想将DataFrames字典写到具有多个标题级别的单个csv文件中

时间:2019-04-17 14:38:04

标签: python python-3.x pandas csv dictionary

我有一系列看起来像这样的数据:

example = {'sample A': pd.DataFrame({'Head1':data,'Head2':data}), 'sample B': pd.DataFrame({'Head1':data,'Head2':data})...}

我想将其保存到单个csv文件中,并将示例名称作为标题,并将Head1和Head2作为子标题。

到目前为止,我只是使用

将每个数据帧输出到其自己的csv文件中
for sample in example
    example[sample].to_csv(sample+"data.csv",index=False)

csv文件应如下所示:

Sample A,,      Sample B,,/n     
Head1,   Head2, Head1,   Head2,/n
Data,    Data,  Data,    Data,/n

请注意:每个样本的子标头的数量始终相同

到目前为止,我还考虑过将数据帧连接为一个,将其写入csv,然后再添加新的标头,但似乎应该有更好的方法。

1 个答案:

答案 0 :(得分:0)

1-创建您的虚拟[ [ { "Empid": 2326, "Empname": "Sam Smith", "AbsenceId": 12840, "Comment": "a001t000004FQgHAAW", "AbsenceStartDate": "2019-05-31T00:00:00.000Z", "AbsenceEndDate": "2019-05-31T00:00:00.000Z", "JobId": 400004, "AbsenceRequestId": "" }, { "Empid": 3387, "Empname": "Joe bloggs", "AbsenceId": 12842, "Comment": "a001t000004FK67AAG", "AbsenceStartDate": "2019-06-06T00:00:00.000Z", "AbsenceEndDate": "2019-06-10T00:00:00.000Z", "JobId": 700004, "AbsenceRequestId": "" } ] ]

DataFrame

2-遍历您的import pandas as pd example = {'sample A': pd.DataFrame({'Head1': [1.0],'Head2': [1.0]}), 'sample B': pd.DataFrame({'Head1': [1.0],'Head2': [1.0]})}

dict

3- IMG结果:

enter image description here

4-为适当的csv操纵标题的第一行:

for key, value in example.items():
    value.columns = pd.MultiIndex.from_product([[key], value.columns]) # Create the multilayer index
    df = pd.concat([df, value], axis=1, sort=False) # Add DataFrames on the right

5-享受csv (LibreOffice屏幕截图):

enter image description here