从嵌套的dict到csv

yv5phkfx  于 2023-05-20  发布在  其他
关注(0)|答案(1)|浏览(122)

我有一个嵌套字典,其中每个键是一个表名,对应的值是列标题和行值。我想获得每个表的csv。如果可能的话,我希望所有表都有一个csv,但这不是强制性的,因为我可以为每个表保存一个csv。
dict显示为

{
    'Numero contatti creati': [
        ['brand', 'count', 'countLastMonth'],
        ['app IO', '1', '0', 'pagoPA', '2', '0']
    ],
    'Risposte totali': [
        ['Field', 'Responses'],
        ['Data registrata', '2']
    ],
    ...
}

其中每个字典键是表名,每个值是表。例如,在第一个名为'Numero contatti creati'的表中,我有三列:brandcountcountastMonth。在每个键中,第一个值总是列的标题,第二个值是数据。我试着用下面的方法做这件事

import pandas as pd

pd.DataFrame(data = np.array(data['Numero contatti creati'][1:]).reshape(-1,3), columns= (data['Numero contatti creati'][0])).to_csv()

其中,3是列数。如果我用这种方式写,我不能在属性中加载csv生成的方式,因为以下错误:

[Errno 22] Invalid argument: ',brand,count,countLastMonth\r\n0,app IO,1,0\r\n1,pagoPA,2,0\r\n'

我该怎么弥补?

kse8i1jr

kse8i1jr1#

我觉得这对你的案子有用。您可以在最后一行添加路径,以将每个数据集保存为单独的CSV

import pandas as pd
import numpy as np

for table_name, table_data in data.items():
    formatted_list = []
    
    row_data = table_data[1]
    cols = table_data[0]
    row_data_len = len(row_data)
    num_cols = len(cols)

    for row_index in range(0, row_data_len, num_cols):
        formatted_list.append(row_data[row_index:row_index+num_cols])

    df = pd.DataFrame(data=formatted_list, columns=cols)
    print(df)
    df.to_csv(...)

相关问题