1
私は、2-backedテストという名前のコグニティブタスクを作成しようとしています。文字列でデータフレームを反復する
私は一定の条件でセミランダムなリストを作成しましたが、今私は参加者のために何が良い答えであるべきかを知りたかったのです。
データフレーム内の列に、「はい」または「いいえ」と入力すると、2文字前に同じ文字が表示されます。ここで
は私のコードです:
from random import choice, shuffle
import pandas as pd
num = 60
letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L']
# letters_1 = [1, 2, 3, 4, 5, 6]
my_list = [choice(letters), choice(letters)]
probab = list(range(num - 2))
shuffle(probab)
# We want 20% of the letters to repeat the letter 2 letters back
pourc = 20
repeatnum = num * pourc // 100
for i in probab:
ch = prev = my_list[-2]
if i >= repeatnum:
while ch == prev:
ch = choice(letters)
my_list.append(ch)
df = pd.DataFrame(my_list, columns=["letters"])
df.head(10)
letters
0 F
1 I
2 D
3 I
4 H
5 C
6 L
7 G
8 D
9 L
# Create a list to store the data
response = []
# For each row in the column,
for i in df['letters']:
# if more than a value,
if i == [i - 2]:
response.append('yes')
else:
response.append('no')
# Create a column from the list
df['response'] = response
まずエラー:
if i == [i - 2]:
TypeError: unsupported operand type(s) for -: 'str' and 'int'
私は数字の代わりに文字を使用している場合は、私はこのエラーを乗り越えることができますしかし、私は
しかし、それ以降は数字で実行するとエラーは発生しませんが、新しい列応答には「いいえ」しかありません。しかし、私はそれが「はい」でなければならないことを12回知っています。