次のデータセットがあります。心理言語学実験の参加者に提示された単語をリストします (各単語の提示順序をインデックスとして設定しました)。
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]}
そして、それらの値を列に入れるための解決策を見つけることができませんでした。辞書を使わずにループで行う簡単な方法があれば教えてください。アドバイスをいただければ幸いです。