2

次のデータセットがあります。心理言語学実験の参加者に提示された単語をリストします (各単語の提示順序をインデックスとして設定しました)。

data = {'Stimulus': ['sword','apple','tap','stick', 'elephant', 'boots', 'berry', 'apple', 'pear', 'apple', 'stick'],'Order': [1,2,3,4,5,6,7,8,9,10,11]}
df = pd.DataFrame(data, columns = ['Stimulus', 'Order'])
df.set_index('Order', inplace=True)


       Stimulus
Order   
1      sword
2      apple
3      tap
4      stick
5      elephant
6      boots
7      berry
8      apple
9      pear
10     apple
11     stick

このデータセットの一部の値は繰り返され (例: apple)、一部は繰り返されません。問題は、次のように、繰り返される値の各出現間の順序列に基づいてセル内の距離を計算し、それを別の列に格納する必要があることです。

       Stimulus  Distance
Order   
1      sword     NA
2      apple     NA
3      tap       NA
4      stick     NA
5      elephant  NA
6      boots     NA
7      berry     NA
8      apple     6
9      pear      NA
10     apple     2
11     stick     7

実装するのは難しくないはずですが、行き詰まりました..最初に、アイテムをキーとして、そのインデックスを値として保存する重複の辞書を作成しました。

{'apple': [2,8,10],'stick': [4, 11]}

そして、それらの値を列に入れるための解決策を見つけることができませんでした。辞書を使わずにループで行う簡単な方法があれば教えてください。アドバイスをいただければ幸いです。

4

1 に答える 1