【问题标题】:How to add new column to existing csv file如何将新列添加到现有的 csv 文件
【发布时间】:2016-11-24 19:14:27
【问题描述】:

例如,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"

【问题讨论】:

    标签: python csv numpy append


    【解决方案1】:

    这不仅仅是在现有的二维数组中添加一列。将其写入 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(和所有堆栈)一样,它不会就地运行。

    【讨论】:

    • 如果用户不想更改数组怎么办?
    【解决方案2】:

    您可以像这样在 numpy 中使用 insert function 插入新列

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

    【讨论】:

    • np.insert 操作不到位。
    猜你喜欢
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 1970-01-01
    • 2014-02-12
    • 2022-11-04
    • 1970-01-01
    • 2017-03-06
    • 2015-11-29
    相关资源
    最近更新 更多