将数组保存到多个列而不是作为一个大列附加

时间:2018-05-09 01:21:07

标签: python pandas numpy scipy

我的程序包含一个循环过程,在每次迭代时生成两个数组predict_resultground_truth。每个数组都具有维度,例如[100,1]。我想将每个数组保存到单独的csv文件中的新列中。

这是主要代码段。但是,我发现在执行程序后,每个数组都会附加到原始数组中。换句话说,我得到两个大的单列文件,而不是两个多列文件。如果我删除mode='a'函数中的to_csv,新列将覆盖旧列。

with open(file_1, 'w+') as predict_csv, open(file_2 , 'w+') as truth_csv:

     for ij in range(0,100):
         #  some other code here
         # predict_result is an array of shape, e.g., [100,1]
        # ground_truth  is also an array of shape, e.g.,[100,1]
         predict_result_pd = pd.DataFrame(predict_result)
         ground_truth_pd = pd.DataFrame(ground_truth)
         predict_result_pd.to_csv(predict_csv,header=False,mode='a')
         ground_truth_pd.to_csv(truth_csv,header=False,mode='a')

1 个答案:

答案 0 :(得分:0)

我不认为打开追加模式是添加列的正确方法,这仅适用于添加行。

但你可以这样:

data = []
for some loop:
   data.append[some_row] # make sure some row has shape (n,), not (n,1)
data = np.array(data).T 
# now your data in arranged in columns
# and you can save it to whatever format you like for example:
np.savetxt("foo.csv", data, delimiter=",")