Python: 将矩阵导出为CSV
我有一个二维矩阵,里面有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文件,你有两个选择:
把这个列表合并成一个更大的数据框,然后使用
to_csv
:pd.concat(list_of_dataframes).to_csv(...)
逐个遍历每个数据框,使用
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')