У меня есть 2 DataFrames, содержащие 110 000 строк и 10 столбцов, а другой - 47 000 точек данных с 8 столбцами.Я использую 2 dataframe для проверки правильности первого DataFrame.Если это совпадение, я возьму эту строку первого DataFrame и второго DataFrame в новый DataFrame.
То, как я проверяю, находится во 2-м кадре данных, я получил ключевое слово в столбце keyword
.Затем я проверяю это с помощью строки столбца первого DataFrame, если оно содержит ключевое слово или нет.
Теперь я использую 2 loops iterrows()
, чтобы проверить это.Но мне потребуется много времени, чтобы сделать.Интересно, есть ли более эффективный способ сделать это?Мой код такой:
for index, ebayrow in ebaydata.iterrows():
make_match = [e_scrubrow for idx,e_scrubrow in etail_scrub_data.iterrows() if e_scrubrow['keyword'] in ebayrow['title']]
nummatch = len(make_match)
if nummatch == 0:
continue
else:
model_match = [e_scrubrow for e_scrubrow in make_match if e_scrubrow['keyword2'] in ebayrow['title']]
nummatch = len(model_match)
if nummatch == 0:
continue
else:
if nummatch == 1:
scrubrow = model_match[0]
ebaychecked.append(scrubrow['keyword'])
ebaychecked1.append(scrubrow['keyword2'])
ebaychecked2.append(scrubrow['keyword3'])
ebaychecked7.append(ebayrow['info'])
print(len(ebaychecked))
else:
year_match = [e_scrubrow for e_scrubrow in model_match if e_scrubrow['keyword3'] in ebayrow['title']]
nummatch = len(year_match)
if nummatch == 0:
scrubrow = model_match[0]
ebaychecked.append(scrubrow['keyword'])
ebaychecked1.append(scrubrow['keyword2'])
ebaychecked2.append(scrubrow['keyword3'])
ebaychecked7.append(ebayrow['info'])
print(len(ebaychecked))