我有2个DataFrame,包含110.000行和10列,另一个有47.000个数据点,具有8列。我使用2数据框来检查第一个数据框的有效性。如果匹配,我将把第一行数据框和第二行数据框的这一行带到新的数据帧中。
我在第二个DataFrame中检查的方式是在列关键字中得到一个keyword
。然后我用1st 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))