2016-11-07 4 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。医療タスクのエンドポイントを計算するスクリプトを作成しようとしています。プログラムを実行すると、スクリプトの最初のforループに当たるまで、すべての方法で動作します。 CategoryID does notは長さのプロパティを持っているので、私はかなりエラーがあると確信しています。しかし、私はそれが最初にリストに変換されているので、それはすべきだとも思う。どのようにこれを修正するための任意の提案?前もって感謝します。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

ありがとうございました!それは今働く。 –

関連する問題