2016-11-07 50 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)) 

嘿,夥計們。我試圖編寫一個腳本來計算醫療任務的終點。當我運行該程序時,它會一直工作,直到它遇到腳本的第一個循環。我很確定有一個錯誤,因爲CategoryID沒有長度屬性。但我也認爲它應該是因爲我在開始時將它轉換爲列表。對於如何解決這個問題,有任何的建議嗎?提前致謝。TypeError:類型'method'的對象沒有len()

+0

你也可以請提供錯誤的追蹤? –

+1

您正將'CategoryID'分配給一個方法:'CategoryID = dataframe ['CategoryID']。tolist'。您忘記調用'tolist',即'CategoryID = dataframe ['CategoryID']。tolist()'。 –

回答

1

好像你忘了()tolist方法,因此它可以被解析爲方法的調用,而不是方法本身:

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

非常感謝!它現在有效。 –

相關問題