Python은 pandas를 사용하여 빅 데이터 Excel의 두 파일을 비교하고 중복 제거합니다.
배경 소개:
대중적인 이해에는 A와 B라는 두 개의 Excel 파일이 있습니다.
A에 포함된 데이터를 B에서 제거하고 싶은데 데이터량이 300w 정도
데이터 양이 많기 때문에 wps도 오피스의 내장 중복제거도 정상적으로 사용할 수 없기 때문에 스크립트가 필요합니다.
코드는 다음과 같습니다.
import pandas as pd
from tqdm import tqdm
# 引号内填写需要去重的表格路径
targetExcel = r'./222.xlsx'
# 引号内填写依据表格的路径
basisExcel = r'./11.xlsx'
# 引号内填写输出字段
field = 'removeRepeatResult'
def removeRepeat():
count = 0
ind = 1
targetIndex = field + str(ind)
resultExcel = {
field+'1': []
}
header = ['A','B','C','D','E','F','G','H','I','J','K']
print('读取数据')
target_Excel = pd.read_excel(targetExcel,header=None,names=header, dtype='object')
basis_Excel = pd.read_excel(basisExcel,header=None,names=['A'], dtype='object')
print('读取成功')
for index in tqdm(header):
for i in tqdm(target_Excel[index], leave=False):
if pd.isnull(i):
continue
elif i in list(basis_Excel['A']):
continue
else:
resultExcel[targetIndex].append(i)
count += 1
if count >= 1020000:
count = 0
ind += 1
targetIndex = field + str(ind)
resultExcel[targetIndex] = []
print('等待数据合并')
df = pd.concat([pd.DataFrame(i) for i in resultExcel.values()], axis=1)
df.fillna(0) # 取消长短不一致问题
df.to_excel('resultExcel.xlsx', header=None, index=False) # 取消表头与行号
#上一行中自定义文件名!
removeRepeat()
input('>>> 任意键退出...')
실행 효과 다이어그램:
안내하고 의사 소통하고 함께 배우고 함께 발전하는 모든 사람을 환영합니다!