Python:将矩阵导出为CSV

3

我有一个带有13行和13列(除了第一列)的2D矩阵,名称为correl,与Python相关。这个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文件中呢?

correlation 是一个 pandas DataFrame 吗?你尝试过 correlation.to_csv("C:\destinationfolder\file.csv") 吗? - TomAugspurger
1个回答

7

看起来相关性也是一个DataFrame, 所以你可以直接使用to_csv:

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

如果您有DataFrame列表,更新答案:

如果您有一个DataFrame列表想要制作成csv文件,您有两个选项:

  1. concat the list into one larger frame, and use to_csv:

    pd.concat(list_of_dataframes).to_csv(...)
    
  2. iterate over each DataFrame and use to_csv with append (mode='a'). Something like:

    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')
    

    see https://dev59.com/CWMm5IYBdhLWcg3wivj7#17531025.


我在我的问题中没有正确解释自己。请查看我问题的更改。我知道相关性是一个DataFrame,但不确定是否可以在循环中附加每个DataFrame。 - Plug4
@CharlesM 在这种情况下,你可以选择:将其连接成一个大DataFrame并使用to_csv,或者在使用to_csv时使用mode='a'(追加)的方式。 - Andy Hayden

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接