gpt4 book ai didi

python - 如何使用 Pandas 将多个 csv 文件中的单个数据列合并为一个?

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:53 26 4
gpt4 key购买 nike

我正在尝试将 40 个几乎相似的 csv 文件中的单个数据列与 Pandas 合并。这些文件包含由 Windows“任务列表”命令生成的 csv 形式的 Windows 进程信息。

我想要做的是,使用 PID 作为键,将这些文件中的内存信息合并到一个文件中。然而,偶尔会出现一些随机的无关紧要的进程,但却会导致 csv 文件之间的不一致。这意味着在某些文件中可能有 65 行,而在某些文件中可能有 75 行。然而,这些随机进程并不重要,它们变化的 PID 应该无关紧要,并且在合并文件时也应该将它们删除。

这就是我第一次尝试这样做的方式:

# CSV files have following columns
# Image Name, PID, Session Name, Session #, Mem Usage

file1 = pd.read_csv("tasklist1.txt")
file1 = file1.drop(file1.columns[[2,3]], axis=1)

for i in range(2,41):

filename = "tasklist" + str(i) + ".txt"

filei = pd.read_csv(filename)
filei = filei.drop(filei.columns[[0,2,3]], axis=1)

file1 = file1.merge(filei, on='PID')


file1.to_csv("Final.txt", index=False)

从第一个 csv 文件中,我只删除“ session 名称”和“ session 编号”列,但保留图像名称作为每行的标题。然后,在下面的 csv 文件中,我只保留 PID 和 Mem 使用列,并尝试将之前一直增长的 csv 文件与即将到来的文件中的数据合并。

这里的问题是,当循环进行到第五次迭代时,它无法再合并文件,因为我收到“重新索引仅对具有唯一值的索引对象有效”错误。

所以我可以在第一个循环内将第一个文件与第二个到第四个文件合并。如果我随后创建第二个循环,将第 5 个文件合并到第 6 个到第 8 个文件,然后将这两个合并的文件合并在一起,则文件 1 到 8 中的所有数据都将完美地合并。

有什么建议如何执行这种链式合并而不创建 x 数量的额外循环?此时,我正在试验 40 个文件,实际上可以通过使用嵌套循环进行暴力破解来完成整个过程,但这首先并不是合并的有效方法,而且如果我需要扩展它来合并,这是 Not Acceptable 更多文件。

最佳答案

重复的列名将导致此错误。

所以可以在函数 merge 中添加参数后缀 :

suffixes : 2-length sequence (tuple, list, ...)

Suffix to apply to overlapping column names in the left and right side, respectively

Overlapping value columns .

关于python - 如何使用 Pandas 将多个 csv 文件中的单个数据列合并为一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34767459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com