Python: 将矩阵导出为CSV

3 投票
1 回答
16353 浏览
提问于 2025-04-17 22:21

我有一个二维矩阵,里面有13行和13列(除了第一列有标题),这个矩阵在Python中叫做correl。这个correl矩阵是从一个DataFrame生成的,我想用多个correl来填充一个叫correlation的矩阵。例如:

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 个回答

7

看起来 correlation 也是一个数据框,所以你可以直接使用 to_csv 来导出数据:

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

如果你有一个数据框的列表,更新一下答案:

如果你有一个数据框的列表,想把它们导出为csv文件,你有两个选择:

  1. 把这个列表合并成一个更大的数据框,然后使用 to_csv

    pd.concat(list_of_dataframes).to_csv(...)
    
  2. 逐个遍历每个数据框,使用 to_csv 并选择追加模式(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.

撰写回答