私は2つの大きなcsvファイルを持っています。主要なものは製品名としてフィールドを持ち、他のCSVファイルにはいくつかのキーワードがあります。私は最初のCSVファイルの製品名でこれらのキーワードを探しています。現時点では私のコードは次のようである:2つの大きなcsvファイル(Python)で文字列の部分文字列を見つける方法
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ファイルの多くを持っています。あなたはこれらのファイルを比較するより効率的な方法を知っていますか?
コードインデントを修正してください。 –
csvファイルの製品名フィールドに各キーワード*が表示される回数を数えていますか? – wwii
各ファイルからいくつかの行を表示してください。 – wwii