前提・実現したいこと
Excelにある2つの単語群の中から共通するものを見つけようとしています。
単語群1がa,b,c,d,e,f,g
単語群2がa,c,d,g
だとしたら
a→o
b→x
c→o
d→o
e→x
f→x
g→o
のように表示させようとしています。
発生している問題・エラーメッセージ
単語群1をd1、単語群2をd2として(それぞれSeriesです)、
lis = []
for i in range(d2.shape[0]):
lis.append(d2.iloc[i])
for j in range(d1.shape[0]):
if d1.iloc[j] in lis[-1]:
print(d1.iloc[j]+'\t'+'o')
else:
print(d1.iloc[j]+'\t'+'x')
と実行したら、
a→o
b→x
c→x
d→x
e→x
f→x
g→x
a→x
b→x
c→o
d→x
e→x
f→x
g→x
...
とaからgを4回繰り返してしまい、欲しい結果とは異なってしましました。
何かいい方法をご存知でしたら、教えていただきたいと思います。
該当のソースコード
lis = []
for i in range(df2.shape[0]):
lis.append(df2.iloc[i])
for j in range(df1.shape[0]):
if df1.iloc[j] in lis[-1]:
print(df1.iloc[j]+'\t'+'o')
else:
print(df1.iloc[j]+'\t'+'x')
試したこと
lis[-1]でsetを2つ作り、集合を使って解決しようとしましたが、set(lis[-1])とすると、単語が一文字ずつに分解されたsetになってしまい、うまくいきませんでした...
補足情報(FW/ツールのバージョンなど)
Jupyterでpandasをimportして行なっています。python3系です。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/29 01:11