タイトルには、ある条件の下でデータフレームの各列のペアに関数を適用しようとしています。私はこれを説明しようとします。私のDFの形式のものである:Pandas:制約の下で各列のペアに関数を適用します。
Code | 14 | 17 | 19 | ...
w1 | 0 | 5 | 3 | ...
w2 | 2 | 5 | 4 | ...
w3 | 0 | 0 | 5 | ...
コードは、矩形グリッドに決定された位置に対応し、WSが異なる単語です。私は、列の各列の間にコサイン類似度測度を適用したいだけです(EDITED!)ペアの列のいずれかの項目の合計がth30より大きい場合はです。
所望の出力のようなものであろう:
| [14,17] | [14,19] | [14,...] | [17,19] | ...
Sim |cs(14,17) |cs(14,19) |cs(14,...) |cs(17,19)..| ...
CSはカラムの各ペアのためのコサイン類似度の結果です。 これを行うには適切な方法はありますか?
すべてのヘルプはあなた がscipy.spatial.distance.cdist
を使用することができ、入力の2つのコレクションから、各ペアにコサインメトリックを適用するには
シリーズ(14,17)'や 'CS(14,19)'などを生み出します5より大きい '14'列。何か試しましたか?失敗したコードとサンプルを提供してください。 – danielhadar
こんにちは@ダニエルハダール。実際には今まで私は手作業で計算していません。私は、ベクトルの方法で、つまり列にループを書くことなく、列の各ペアに関数を適用する方法(この場合はコサイン類似度ですが、より多くの関数を適用します)があるかどうかを尋ねています。最後のdfのビルドは、結果をよりよく視覚化することだけですが、重要ではありません。 –