我目前有1个文本文件(tab del),包含15,000条记录。 我有另一个包含5000条记录的文本文件(tab del)。
在包含5000条记录的文件中,有一些行与包含15,000条记录的文件匹配。这些可由名为URN(唯一记录号)的列标题标识。例如,我可能需要URN 62294从主文件中取出,但我不知道我必须拿出那个,直到我比较两个文件并看到它在两者中。
在python中这有多难?
答案 0 :(得分:1)
尝试使用pip install pandas
然后运行:
import pandas as pd
filename1 = #main file
filename2 = #the other file
main = pd.read_csv(filename1,sep='\t') # sep='\t' is for tab delimited file
side = pd.read_csv(filename2,sep='\t')
main['URN'] = main['URN'].astype(int)
side['URN'] = side['URN'].astype(int)
merge = pd.merge(main,side,on='URN',how='inner') #how=inner means the URN value is in both 2 files
#merge = merge[merge['URN'] != 62294]
print (merge)
merge.to_excel('Output.xlsx,index=False)
答案 1 :(得分:0)
您可以查看Pandas库。它允许您将两个表作为数据帧加载,并以类似sql的方式将它们连接到所需的列。使用文档应该很容易。
答案 2 :(得分:0)
难吗?不,你可以用
轻松完成file1 = open("file1.txt","r")
results = []
for line in file1:
file2 = open("file2.txt","r")
for l in file2:
if (l.split("\t")[0] == line.split("\t")[0]):
results.append(l.split("\t")[0])
break
file2.close()
file1.close()
for i in results:
print(i)
现在,这是最好的方式吗?可能不适合大文件。 (我的文件花了74秒。)