그래서 기존의 .csv 파일을 반복하여 스트로프 작업을 코딩하려고합니다. 이를 위해 stimuli.csv 파일을 데이터 프레임으로 읽습니다.팬더 데이터 프레임을 반복하고 특정 값을 열에 표시하려고합니다.
.CSV 파일은 다음과 같이 구성되어 있습니다 : 나는 다음 '색상'칼럼 '단어'열에서 값을 검사 dataframe을 통해 루프를 시도
Colours Congruent Word
0 red 0 blue
1 red 1 red
2 red 0 green
3 blue 1 blue
. 색상은 단어의 글꼴로 표시되어야하므로 색상 열의 색인 값을 확인하여 해당 색상 글꼴을 올바르게 표시합니다. 표시되는 단어 자체는 'Word'열에 색인 된 값이어야합니다.
KeyError를 : 나는군요 내가 온라인을 검토 한 결과 0
하지만 구체적인 예는 나를 도와 않습니다. 이 모든 잘못을 저 지르면 누가 말해 줄 수 있습니까?
import pygame
import sys
import psychopy
import os
import csv
import pandas as pd
pygame.init()
screen = pygame.display.set_mode((1000, 500))
screen.fill((0, 0, 0))
myfont= pygame.font.SysFont("Calibri", 30)
blue= (0,0,255)
green= (0,255,0)
red= (255,0,0)
while 1:
file= r'stimuli.csv'
df= pd.read_csv('%s' %file, delimiter=',', encoding="utf-8-sig")
word= df['Word']
congruent= df['Congruent']
colour= df['Colours']
for index, row in df.iterrows():
word= df[index].iloc['Word']
congruent= df[index].iloc['Congruent']
colour= df[index].iloc['Colours']
if df.iloc[index].iloc['Colours']== 'red':
stim= myfont.render('%s' %word, 1, (255,0,0))
screen.blit(stim, (300,300))
pygame.display.flip()
if df.iloc[index].iloc['Colours']== 'green':
stim= myfont.render('%s' %word, 1, (0,255,0))
screen.blit(stim, (300,300))
pygame.display.flip()
if df.iloc[index].iloc['Colours']== 'blue':
stim= myfont.render('%s' %word, 1, (0,0,255))
screen.blit(stim, (300,300))
pygame.display.flip()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if event.key== pygame.K_ESCAPE:
msg2= myfont.render("Exiting now", 1, (0, 255, 0))
screen.blit(msg2, (300, 300))
pygame.display.flip()
pygame.display.quit()
pygame.quit()
'안양 [인덱스] .iloc [ '색상']'잘못 + 위의 두 행은, –
는'그것을하지 않는다'색 = df.loc [인덱스, '색상'] '시도 True '는 이제 파일을 읽고 모든 데이터를 1 초에 수백 번 생성합니다. 모든 변경 후에'flip() '을 사용하지 마십시오. 모든 루프에서 한번만 수행하십시오. BTW : pandas는 기본적으로 matplotlib를 사용합니다. matplotlib로 할 수 있다고 생각합니다. – furas