如何将新列添加到现有csv文件

时间:2016-07-21 09:21:42

标签: python csv numpy append

例如, x 是我的数据, r 应该是要添加的新数据。

import numpy as np
x = np.array([[1, 2, 3], 
              [4, 5, 6],
              [7, 8, 9]], np.int32)
np.savetxt("test.csv", x, fmt='%d', delimiter=',')

r = [1,2,3]

我怎样才能将其添加到" test.csv"

2 个答案:

答案 0 :(得分:1)

您可以使用insert function在numpy中插入新列,如此

np.insert(x, 3, [r], axis=1)

答案 1 :(得分:1)

这不仅仅是为现有的2d数组添加列。将它写入csv文件只是另一个步骤,不受此添加的影响。

In [96]: x = np.array([[1, 2, 3], 
    ...:               [4, 5, 6],
    ...:               [7, 8, 9]], np.int32)
In [97]: r = [1,2,3]

有许多函数可以向数组添加列,但它们最终都使用concatenate。知道如何直接使用concatenate是一件好事。关键是匹配维数。

In [98]: x1 = np.concatenate((x, np.array(r)[:,None]), axis=1)
In [99]: x1
Out[99]: 
array([[1, 2, 3, 1],
       [4, 5, 6, 2],
       [7, 8, 9, 3]])

vstack负责将r转换为此列数组。 insert更通用,允许您在现有内容中添加值(不仅仅是在结尾处)。但是像concatenate(和所有堆栈)一样,它不能就地运行。