如何在txt文件的一列中替换多列

时间:2019-01-03 04:17:02

标签: python pandas python-2.7

我有一个6列的txt文件file1.csv。它们的排序如下:

$ cat file1.csv (tab delimited)(752 rows)
1   1011001 1001164 981328  1   -9
1   1011002 1001164 981328  1   -9
1   1011003 1001085 981149  1   -9

$ cat file2.txt(以空格分隔,这是一个具有52872列和752行的大文件)

1011001 CC GG TT AA ...
1011003 GG TT AA CC ...
1011002 TT GG CC AA ...

如何将file2.txt中的第一列替换为file1.csv中的6列,如下所示:

1   1011001 1001164 981328  1   -9  C   C   G   G   T   T   T   A   A   ...
1   1011002 1001164 981328  1   -9  T   T   G   G   C   C   A   A   
1   1011003 1001085 981149  1   -9  G   G   T   T   A   A   C   C

2 个答案:

答案 0 :(得分:1)

import pandas as pd

file_1=pd.read_csv('file1.csv', header=None)
file_2=pd.read_csv('file2.txt', sep=' ')

combined_df = file_1.join(file_2, left_on=1, right_index=True)

Faisel在下面指出了一个重点。您可能想将新合并的数据保存到输出中。

答案 1 :(得分:0)

我建议您查看Pandas软件包,以方便地操作.csv文件。如果您这样:

import pandas as pd

df1 = pd.read_csv('file1.txt')
df2 = pd.read_csv('file2.txt')

df = pd.pd.concat([df1, df2], axix=1)

# Optionally save it back to csv file
df.to_csv('final.txt')