基于列将两个文本文件映射为一个文本文件的有效方法

2024-04-20 07:23:17 发布

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

我有两个文本文件:

文件1:

Category ID

C1  A1
C2  A2
C3  A3  
C1  A4
C4  A5

文件2:

Purchase ID

O1  A1
O1  A2
O1  A3
O1  A4
O2  A5
O2  A6
O3  A7
O3  A2

我需要创建一个文件3:

O1 A1 C1
O1 A2 C2

等等。你知道吗

文件1和文件2将非常大。你知道吗

有人能推荐一种有效的方法吗(而不是从文件1和文件2逐个搜索),可能是用python。你知道吗

但其他语言也可以。即使是excel也不错,如果可以用的话?你知道吗

任何解决方案的任何线索将不胜感激。你知道吗


Tags: 文件ida2a1a3a4a5文本文件
3条回答

在shell中使用join

join -j 2 -o 2.1 2.2 1.1 File1 File2
  • -j 2表示“在第二列上联接”
  • -o指定输出中列的顺序,2.1表示“文件2,列1”

您可以使用这个awk命令来组合这两个文件:

awk 'FNR==NR{id[$2]=$1; next} {print $0, id[$2]}' file1 file2

Purchase ID Category
O1  A1 C1
O1  A2 C2
O1  A3 C3
O1  A4 C1
O2  A5 C4
O2  A6
O3  A7
O3  A2 C2

将2个文件导入数据库中的2个表(例如SQLite),然后从T1.id=T2.id上的T1 join T2中选择

sqlite shell可以设置csv或tabs模式。(逗号/制表符分隔)使用.import.once作为输入和输出。你知道吗

相关问题 更多 >