Python:在csv中导出矩阵

时间:2014-03-14 18:00:42

标签: python pandas

我在Python中有一个名为correl的包含13行和13列(除第一列之外的标题)的2D矩阵。此correl矩阵是从DataFrame生成的,我希望使用多个correlation填充矩阵correl。例如:

correlation=[]
correl=df.corr()
correlation=correlation.append(correl) #correlation is not a DataFrame

我使用correlation=[]的原因是因为我希望用多个相关表填充correlation。这就是我使用append的原因,因为这是一个循环。

现在我希望在csv文件中导出此相关矩阵。我这样做:

with open("C:\destinationfolder\file.csv", "wb") as f:
    writer = csv.writer(f)
    writer.writerows(correlation)

我收到此错误:

raise KeyError('no item named %s' % com.pprint_thing(item)) KeyError: u'no item named 0'

为什么呢? 我的猜测是我没有第一列的标题...是否有更简单的方法将我的关联表导出到csv?

1 个答案:

答案 0 :(得分:6)

看起来像correlation is a DataFrame too,所以您只需使用to_csv

correlation.to_csv("C:\destinationfolder\file.csv")

如果您有DataFrames列表,请更新以回答:

如果你有一个想要制作成csv的DataFrame列表,你有两个选择:

  1. 将列表连接成一个更大的框架,然后使用to_csv

    pd.concat(list_of_dataframes).to_csv(...)
    
  2. 迭代每个DataFrame并使用to_csv和append(mode='a')。类似的东西:

    list_of_dataframes[0].to_csv(...)  # write first, using headers..  assumes list isn't empty!
    for df in list_of_dataframes[1:]:
        df.to_csv(..., header=False, mode='a')
    

    请参阅https://stackoverflow.com/a/17531025/1240268