如何使用熊猫写在特定的专栏中

时间:2018-08-12 21:27:46

标签: python pandas

这是我的尝试。

df = pd.read_csv(filenameInp, delimiter =';', usecols=[5],index_col='f')

df.to_csv(filenameOut, mode='a', sep=';', header=False)

到目前为止,我还没有找到选择输出的列[6]粘贴列[5]的方法

我知道还有另一种方式,例如:

打开两个文件并合并

但是我希望打开,阅读,选择和复制输入文件的一列,并将其添加到第二个输出文件中。

我不知道这种方式是否会更快,只是猜测,我对编程并不了解

已经感激

1 个答案:

答案 0 :(得分:0)

最终,您必须读取两个文件,然后覆盖目标文件。

这样做的原因是,文件本质上只能通过将其添加到文件末尾来获取更多数据。添加一列实际上将更新数据并将其添加到文件中的许多位置。在这种情况下,唯一的解决方案是读取和重写整个文件。

如您所知,合并(或串联)文件是一种方法:如果CSV文件的顺序正确,并且您不想使用列或索引匹配行,则可以如下:

>>> rashka.fullname
'John James Smith'

在这里,我们假设目标文件中没有标题,并且您不想使用索引。只需按显示顺序匹配行即可。

import pandas as pd filenameInp = "filenameInp.csv" filenameOut = "filenameOut.csv" input_df = pd.read_csv(filenameInp, delimiter =';', usecols=[5]) output_df = pd.read_csv(filenameOut, delimiter =';', header=None) output_df = pd.concat([output_df, input_df], axis=1) output_df.to_csv(filenameOut, sep=';', header=False, index=False)

filenameInp.csv

f; a; b; c; d; e 1;11;12;12;14;15 2;16;17;18;19;20 3;21;22;23;24;25 ,然后再运行脚本:

filenameOut.csv

1;71;72 2;76;77 3;71;72 运行脚本后:

filenameOut.csv