【发布时间】:2017-11-16 13:25:16
【问题描述】:
我向您展示了一个示例,我需要对我的数据执行哪些操作。我有两个由制表符分隔的文本文件。
cat in1.tsv
111 A B C
111 D E F
111 G H I
222 A B C
333 A B C
333 D E F
这个表可以有大约数千行。列数少于 100。第一列可以有重复的值(如 111 和 333)。
cat in2.tsv
111 a b c
222 a b c
333 d e f
在此文件中,第 1 列中的值仅出现一次。我需要根据它的第一列匹配合并这两个文件。
cat output.tsv
111 A B C 111 a b c
111 D E F 111 a b c
111 G H I 111 a b c
222 A B C 222 a b c
333 A B C 333 d e f
333 D E F 333 d e f
如果矩阵的大小相同,我的解决方案有效:
paste <(sort in1.tsv) <(sort in2.tsv) > output.tsv
感谢任何对 awk、bash 或其他适用于大量行的程序的帮助。
【问题讨论】:
-
这看起来可以通过在 Python 或 R 中使用 pandas 模块来解决。如果您需要缩放,也许可以使用 Dask(另一个 Python 库)。
-
感谢您的评论。我想先使用一些 awk 或 bash 解决方案,因为我对 python 不是很熟悉。