teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コード修正

2022/12/14 05:14

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -17,6 +17,11 @@
17
17
  df = pd.DataFrame(data, columns=['src','idx']) # 分割済み単語のタプルと元配列位置
18
18
  df['key'] = df['src'].apply(lambda e:e[:-1]) # 検索用のキー=末尾の単語を除いたもの
19
19
 
20
+ # 結合用の列値をタプルからID(数値)に最適化
21
+ dic = {e:i for i,e in enumerate(set(df['src']) | set(df['key']))}
22
+ df['src'] = df['src'].apply(dic.get)
23
+ df['key'] = df['key'].apply(dic.get)
24
+
20
25
  # 左結合
21
26
  dfm = df.merge(df, left_on='src', right_on='key', how='left')
22
27