TypeError:类型'method'的对象没有len()
问题描述:
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()
答
好像你忘了()
后tolist
方法,因此它可以被解析为方法的调用,而不是方法本身:
CategoryID = dataframe['CategoryID'].tolist()
ReactionTime = dataframe['ReactionTime'].tolist()
CorrectResponse = dataframe['CorrectResponse'].tolist()
+1
非常感谢!它现在有效。 –
你也可以请提供错误的追踪? –
您正将'CategoryID'分配给一个方法:'CategoryID = dataframe ['CategoryID']。tolist'。您忘记调用'tolist',即'CategoryID = dataframe ['CategoryID']。tolist()'。 –