gpt4 book ai didi

python - 通过标识符列合并大文本文件

转载 作者:行者123 更新时间:2023-11-30 23:01:38 24 4
gpt4 key购买 nike

我有很大的文本文件(从 5GB 到 35GB)。我想按列连接这些文件(或者更好的是我想合并它们)。所有文件都有一个标识符列,并且它们在此列中具有相同的条目,因此可以合并它们。这些文件如下所示:

文件 1(文件超过 1000 列,制表符分隔):

ID          col1   col2
ab1000025 1 2
ab1000053 2 3
ab1250223 3 1

文件2:

ID          col3   col4
ab1000025 2 2
ab1000053 2 1
ab1250223 3 1

我尝试了两种不同的方法:

  1. 我将 Python 与 pandas 数据框一起使用。不幸的是,当文件作为 pd.dataframe 读入时,文件的大小会增加。我正在服务器上工作,但机器仍然没有足够的内存。因为这个问题我有了另一个想法......

  2. 我使用 bash sort 命令对文件进行排序,然后想要合并它们。不幸的是,在对我的文件进行排序时出现问题。我遇到的问题是,排序命令不会以相同的方式对所有文件进行排序。真正的问题是这样的条目:

    ab100005
    ab1000050

排序后,我用 R 校对了标识符。我只提取了标识符列,将其读入 R,然后比较所有文件中的列,似乎有时会将 ab100005 排序在 ab1000050 之前,而将其排序在其后面。我不能 100% 确定这是否是提取或读入 R 的问题,但我想不是,因为我还校对了原始排序文件,并且在相同位置(行号)上有不同文件中的不同条目。这不应该是这样。

我使用的排序命令是:

sort -t$'\t' -k1,1 -n file.txt 

sort -t$'\t' -k1,1 -h file.txt

也许有人有完全不同的想法来合并文件(使用 bash、Python 或 R)。这也将是完美的。上面两个文件的期望输出是:

ID          col1    col2    col3    col4
ab1000025 1 2 2 2
ab1000053 2 3 2 1
ab1250223 3 1 3 1

最佳答案

假设文件格式正确并且两个文件具有相同的 id(内部连接)

join f1.tsv f2.tsv 

关于python - 通过标识符列合并大文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34856717/

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