Я написал код. Но это очень медленно. Цель состоит в том, чтобы искать спички. Это не обязательно совпадения один на один.
- У меня есть фрейм данных, в котором содержится около 3 600 000 записей -> "SingleDff"
- У меня есть фрейм данных с примерно 110 000 записей -> "dfnumbers"
Сейчас - Код пытается выяснить, можно ли из этих 110 000 записей найти записи в 3 600 000 000.
Я добавил счетчик, чтобы увидеть, насколько он «быстрый». После 24 часов я получил только 11 000 записей. Всего 10%
Сейчас я ищу способы и / или идеи, как улучшить производительность Кодекса.
Код:
import os
import glob
import numpy as np
import pandas as pd
#Preparation
pathfiles = 'C:\\Python\\Data\\Input\\'
df_Files = glob.glob(pathfiles + "*.csv")
df_Files = [pd.read_csv(f, encoding='utf-8', sep=';', low_memory=False) for f in df_Files]
SingleDff = pd.concat(df_Files, ignore_index=True, sort=True)
dfnumbers = pd.read_excel('C:\\Python\\Data\\Input\\UniqueNumbers.xlsx')
#Output
outputDf = pd.DataFrame()
SingleDff['isRelevant'] = np.nan
count = 0
max = len(dfnumbers['Korrigierter Wert'])
arrayVal = dfnumbers['Korrigierter Wert']
for txt in arrayVal:
outputDf = outputDf.append(SingleDff[SingleDff['name'].str.contains(txt)], ignore_index = True)
outputDf['isRelevant'] = np.where(outputDf['isRelevant'].isnull(),txt,outputDf['isRelevant'])
count += 1
outputDf.to_csv('output_match.csv')
Редактировать: пример данных
В кадре данных 110'000 у меня есть что-то вроде этого:
ABCD-12345-1245-T1
ACDB-98765-001 AHHX800.0-3
В огромном DF у меня есть записи вроде:
AHSG200-B0097小样图.dwg
MUDI-070097-0-05-00.dwg
ABCD-12345-1245.xlsx
ABCD-12345-1245.pdf
ABCD-12345.xlsx
Теперь я пытаюсь найти совпадения - На какое число мы можем найти документы
Спасибо за ваш вклад