如何使用pandas在特定的列中写作

2024-10-17 08:33:26 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的尝试。你知道吗

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

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

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

我知道还有另一种方法,比如:

打开两个文件并合并

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

我不知道这样会不会更快的过程只是一个猜测我不太懂编程

已经很感激了


Tags: 文件csvto方法dfreadindexmode
1条回答
网友
1楼 · 发布于 2024-10-17 08:33:26

最终,您必须读取这两个文件,然后覆盖目标文件。你知道吗

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

正如您所知,合并(或连接)文件是一种可行的方法:如果CSV文件的顺序正确,并且您不希望使用列或索引匹配行,则可以执行以下操作:

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运行脚本后:

1;71;72;15
2;76;77;20
3;71;72;25

相关问题 更多 >