두 개의 큰 csv 파일이 있습니다. 주요 하나는 제품 이름으로 필드가 있고 다른 CSV 파일에는 키워드가 있습니다. 첫 번째 CSV 파일에서 제품 이름으로 이러한 키워드를 찾고 있습니다. 그 순간 내 코드는 다음과 같습니다 :두 개의 큰 csv 파일 (파이썬)에서 문자열의 하위 문자열을 찾는 방법
class Keyword:
# keyword class for adding match keywords
def __init__(self):
self.data={}
def add(self, keyword, count):
if keyword in self.data.keys():
self.data[keyword]+=count
else:
self.data[keyword]=count
def get_match(self):
temp = []
for key, value in self.data.iteritems():
temp.append(key)
temp.append(value)
return temp
for i, product_row in product_df.iterrows():
product_title = product_row['title'].lower().replace(',','')
k = Keyword()
for j, keyword_row in keyword_df.iterrows():
if keyword_row['keyword'] in product_title:
k.add(keyword_row['keyword'], keyword_row['count'])
match_items = k.get_match()
if len(match_items)>0:
temp = product_row.tolist()
temp = [str(x).replace(',','') for x in temp]
temp.extend(match_items)
print>>sys.stdout, str(temp).strip('[]').replace("'",'')
else:
pass
이 코드는 매우 느리고 서로 비교해야 할 많은 CSV 파일이 있습니다. 이 파일들을 비교하는 더 효율적인 방법을 알고 있습니까? 에 키워드를
product_title = set(product_row['title'].lower().replace(',','').split())
코드 들여 쓰기를 수정하십시오. –
csv 파일의 제품 이름 입력란에 각 키워드 *가 * 표시되는 횟수를 계산하고 있습니까? – wwii
각 파일에서 몇 줄을 보여주십시오. – wwii