【问题标题】:How to save python list(dictionary) to csv file如何将python列表(字典)保存到csv文件
【发布时间】:2021-07-04 04:58:50
【问题描述】:

我有以下列表(字典):

db = [{'Cat1':    DB_Field1 DB_Field2 DB_Field3
  4        1F1       1F2       1F3
  5        2F1       2F2       2F3
  6        3F1       3F2       3F3
  8        NaN       NaN       NaN
  11       NaN       NaN       NaN
  14       NaN       NaN       NaN},
 {'Cat2':    DB_Field4 DB_Field5
  4        1F4       1F5
  5        2F4       2F5
  6        3F4       3F5
  8        NaN       NaN
  11       NaN       NaN
  14       NaN       NaN},
 {'Cat3':    DB_Field6
  4        1F6
  5        2F6
  6        3F6
  8        NaN
  11       NaN
  14       NaN},
 {'Cat4':    DB_Field7 DB_Field7 DB_Field8 DB_Field9
  4        1F7       1F7       1F8       1F9
  5        2F7       2F7       2F8       2F9
  6        3F6       3F6       3F8       3F9
  8        NaN       NaN       NaN       NaN
  11       NaN       NaN       NaN       NaN
  14       NaN       NaN       NaN       NaN},
 {'Cat5':    DB_Field10 DB_Field11 DB_Field12 DB_Field13 DB_Field13 DB_Field13  \
  4        1F10       1F11       1F12          1          1          1   
  5        2F10       2F11       2F12          2          2          2   
  6        3F10       3F11       3F12          3          3          3   
  8         NaN        NaN        NaN        NaN        NaN        NaN   
  11        NaN        NaN        NaN        NaN        NaN        NaN   
  14        NaN        NaN        NaN        NaN        NaN        NaN   
  
     DB_Field13 DB_Field13  
  4           1          1  
  5           2          2  
  6           3          3  
  8         NaN        NaN  
  11        NaN        NaN  
  14        NaN        NaN  }]

我想将其保存为以下格式:

我该怎么做?

到目前为止我尝试了什么?

pd.DataFrame(db).to_csv('test.csv')

这不会保存整个字典,只保存键,如下所示:

【问题讨论】:

    标签: python pandas list csv dictionary


    【解决方案1】:

    一个想法是将concatDataFrame.dropnaDataFrame.to_csv一起使用,但在csv中获得重复的第一个数据值,因为写成MultiIndex

    pd.concat(db, axis=1).dropna().to_csv('test.csv', index=False)
    

    编辑:如果有嵌套的DataFrames,首先使用concat将它们加入DataFrames列表,然后使用第二个concat作为一个DataFrame

    (pd.concat([pd.concat(x, axis=1) for x in db], axis=1)
                  .dropna().to_csv('test.csv', index=False))
    

    【讨论】:

    • 它是以列表形式输出的 pandas.DataFrame。因此,它会产生以下错误:'TypeError: cannot concatenate object of type '';只有 Series 和 DataFrame obj 是有效的'
    • @MuSu18 - pd.concat([pd.concat(x, axis=1) for x in db], axis=1) 工作怎么样?
    猜你喜欢
    • 2018-12-20
    • 2021-09-28
    • 2021-03-23
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 2016-03-29
    相关资源
    最近更新 更多