我有file1个赞:
1 A aa
2 A bb
3 A cc
4 A dd
5 B xx
6 C yy
7 C zz
还有一个文件2:
1 A 11
2 B 22
3 C 33
我想将file1和file 2合并到基于第二列的file3中,这样:
1 A aa 11
2 A bb 11
3 A cc 11
4 A dd 11
5 B xx 22
6 C yy 33
7 C zz 33
哪种方法最简单?谢谢。
答案 0 :(得分:1)
如果使用Python,使用pandas将为您节省很多时间。因此,如果您的数据框为df1
:
1 2
0
1 A aa
2 A bb
3 A cc
4 A dd
5 B xx
6 C yy
7 C zz
和df2
:
1 2
0
1 A 11
2 B 22
3 C 33
然后您可以使用merge
:
df1.merge(df2, left_on=1, right_on=1)
获得
1 2_x 2_y
0 A aa 11
1 A bb 11
2 A cc 11
3 A dd 11
4 B xx 22
5 C yy 33
6 C zz 33
答案 1 :(得分:0)
这是awk
的解决方案。
awk 'FNR==NR{a[$2]=$3;next} {print $0,a[$2]}' Input_file2 Input_file1
答案 2 :(得分:0)
哪种方法是最简单的
我不确定最简单是什么意思。对于这个问题
您只需使用join
:
join -j 2 -o 1.1 1.2 1.3 2.3 file1 file2
对于给定的示例,以上命令生成所需的输出。如果文件未排序,则还可以添加--nocheck-order
选项。