【问题标题】:replacing a column in a csv file using python使用python替换csv文件中的列
【发布时间】:2017-03-05 01:54:46
【问题描述】:

我有一个名为 0.csv 的文件,有 15 列和 100 行。

我有一个不同的文件名 8.csv,它只有一列和相同数量的 100 行。

我需要将第一个文件 0.csv 中的某个列替换为我从第二个文件中获得的列:8.csv(列具有相同数量的行)。

然后对其他几列做同样的事情。

(因为我需要在 IronPython 中解决这个问题,所以我不能使用 Pandas)。

我可以使用 Python 读取/写入 .csv,只是找不到有关如何写入特定列的示例。

帮助不胜感激!

谢谢!

【问题讨论】:

    标签: python csv


    【解决方案1】:

    Python 有 zip 函数,它可以转置表格(使用列作为行)。 There is another SO question related to this

    一般的想法是每行都有一个列表

    [ col1, col2, col3, ... ]
    

    然后用所有这些行制作另一个列表

    [ [ col1, col2, col3, ... ],
      [ col1, col2, col3, ...] ]
    

    然后用zip(),你应该得到

    x = [ [ col1, col1, col1, ...], 
          [ col2, col2, col2, ...] ]
    

    您可以使用

    轻松更改第 8 列
    x[8] = new_column
    

    然后再次使用 zip 重新转置以将行重新分列。

    最后你必须将 csv 数据重写回一个(新的)文件

    【讨论】:

    • 谢谢,但我不确定这将如何让我到达我想要的位置:用另一个 .csv 文件中的列替换 .csv 文件中的特定列(第 8 列) .第二个文件由单列组成,具有相同的行数。可能我在 Python 方面的知识不是很好,您的回答超出了我的知识范围。如果你能解释一下,我可能会明白。谢谢!
    • 谢谢。我实际上在做类似的事情,但不像你的那样复杂:我试图将所有列写成独立的 .csv 并将组合回单个 .csv。但我也会试试你的。无论如何,我仍然需要找到一种方法来替换现有 .csv 中的特定列。再次感谢。
    猜你喜欢
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2019-07-10
    • 1970-01-01
    • 2014-03-05
    • 2014-01-20
    • 1970-01-01
    相关资源
    最近更新 更多