用python輕鬆求百萬數據交集,秒殺EXCEL

工作中經常需要求二份數據的交集(即二份數據中的相同部分),如果是幾千幾萬條數據,我們用EXCEL可以搞定(在EXCEL中可以使用VLOOKUP函數對二列數據進行對比,然後篩選出相同的內容),用時也不會太長。

用python輕鬆求百萬數據交集,秒殺EXCEL

python 數據 交集

但如果數據有幾十萬條,用EXCEL處理就相當慢了(如果你有耐心,當然可以這樣做),如果數據是幾百萬條,EXCEL是無法處理的,你可能會想到,我用UE也可以處理啊(當然可以,但需要一些小技巧,而且你得有UE這個軟件,這個軟件並不便宜)。

好了,用python,免費,快速處理百萬甚至千萬數據取交集,只在眨眼之間(有點誇張,但時間絕對夠短),第一篇頭條文章,源代碼免費分享給大家,喜歡的加關注,後續還有更精彩的分享.

下面的代碼完美實現二個文本文檔A.TXT與B.TXT取交集並輸出C.TXT,輸出的C.TXT包含二個文本文檔中的重複數據。enjoy it!

# -*- coding:UTF-8

# 作者:aovs 2018-03-07

# Python 版本:3.6.4

# 本代碼實現將a.txt、b.txt二個文本文件取交集後輸出c.txt文檔,輸出的文檔數據無序。

# 將a.txt創建為列表

print ('本程序實現將a.txt、b.txt二個文本文件取交集後輸出c.txt文檔,輸出的文檔數據無序。')

print ('請確定你的Python版本不低於3.6.4,a.txt和b.txt文件已經準備就緒。')

lista = [] # 創建空列表lista

fa = open('A.txt',encoding='utf-8') # 打開a.txt

for line in fa.readlines():

lista.append(line.replace('\n','\n')) #將fa中的每一行數據添加到lista列表中

# 將b.txt創建為列表

listb = [] # 創建空列表listb

fb = open('B.txt',encoding='utf-8') # 打開a.txt

for line in fb.readlines():

listb.append(line.replace('\n','\n')) #將fb中的每一行數據添加到listb列表中

x = set(lista) # 將lista去重後賦給x

y = set(listb) # 將listb去重後賦給y

c = x & y # x、y取交集

fc = open('交集數據.txt', 'w',encoding='utf-8') # 創建或打開'C.TXT'

fc.writelines(c) # 將交集數據寫入'c.TXT'

fc.close() # 搞定,收工。

print ('正在處理數據……請稍候')

print ('交集數據為 %d' % len(c))

print ('搞定,打開a.txt同文件夾下的\'交集數據.txt\'查看結果。')


分享到:


相關文章: