2016-11-07 3 views
1
def DS(): 
import os 
import pandas as pd 

directory=input('What folder would you like to work in? (Example: /Users/hem/Desktop/pythontest/ ') 
filename=input('Please enter the name (including .csv) of the file you would like to analyze ') 
idkey=input('What is the subject ID you are analyzing? ' ) 
sessionkey=input('What session of testing are you analyzing? ')  
print('---------- Calculating Drug Stroop endpoints ----------') 
os.chdir(directory) 
dataframe = pd.read_csv(filename, error_bad_lines=False) 
output={} 

CategoryID = dataframe['CategoryID'].tolist 
ReactionTime = dataframe['ReactionTime'].tolist 
CorrectResponse = dataframe['CorrectResponse'].tolist 

#Stroop interference score 
totalN = 0 
countN = 0 
CorrectResponseNeutral = 0 
for i in range(len(CategoryID)): 
    if CategoryID[i] == 1: 
     totalN + ReactionTime[i] 
     countN + 1 
     CorrectResponseNeutral + CorrectResponse[i] 

AverageRTNeutral = totalN/countN 
CorrectResponseNeutral = CorrectResponseNeutral/countN 

totalD = 0 
countD = 0 
CorrectResponseDrug = 0 
for i in range(len(CategoryID)): 
    if CategoryID[i] == 2: 
     totalD + ReactionTime[i] 
     countD + 1 
     CorrectResponseDrug + CorrectResponse[i] 

AverageRTDrug = totalD/countD 
CorrectResponseDrug = CorrectResponseDrug/countD 
InterferenceScore = AverageRTNeutral - AverageRTDrug  


output['SubjectID'] = idkey 
output['Session'] = sessionkey 
output['Interference Score'] = InterferenceScore 
output['Accuracy of Neutral Trials'] = CorrectResponseNeutral 
output['Accuracy of Drug Trials'] = CorrectResponseDrug 
print('---------- Done calculating endpoints ----------') 
outputname=input('What would you like to name your outputfile? (Please include.csv)') 

outputdataframe = pd.DataFrame.from_dict([output]) 
outputdataframe.to_csv(os.path.join('/Users/hem/Desktop/Analysis/DrugStroopAnalyzed',outputname)) 

Hey Guys. Я пытаюсь написать сценарий, который будет вычислять конечные точки для медицинской задачи. Когда я запускаю программу, она работает до тех пор, пока она не попадет в первый цикл цикла. Я уверен, что есть ошибка, потому что CategoryID не имеет свойства length. Но я также думаю, что это должно быть, потому что я конвертирую его в список в начале. Любые предложения по устранению этого? Заранее спасибо.ТипError: объект типа 'метод' не имеет len()

+0

пожалуйста, вы можете также включать TraceBack для ошибки? –

+1

Вы присваиваете 'CategoryID' методу:' CategoryID = dataframe ['CategoryID']. Tolist'. Вы забыли называть 'tolist' i.e' CategoryID = dataframe ['CategoryID']. Tolist() '. –

ответ

1

Похоже, вы забыли () после tolist метод, поэтому он может быть проанализирован как вызов метода, а не сам метод:

CategoryID = dataframe['CategoryID'].tolist() 
ReactionTime = dataframe['ReactionTime'].tolist() 
CorrectResponse = dataframe['CorrectResponse'].tolist() 
+1

Спасибо большое! Он работает сейчас. –

Смежные вопросы