for i in range(0,9):
num = training_data[training_data[i]==row[i]&training_data[9]==1].groupby([i,9]).size()
print num
count_equals.append(num)
数据帧
0 1 2 3 4 5 6 7 8 9
314 1 1 1 1 1 1 2 1 1 1
431 5 1 1 3 4 1 3 2 1 1
260 10 5 8 10 3 10 5 1 3 -1
91 3 1 1 2 2 1 1 1 1 1
337 1 1 1 1 2 1 3 1 1 1
我需要计入一个列表,否则没有第二个条件工作。 如果row = [1,1,1,1,1,1,1,1] 那么count_equals列表应该是[2,4,4,2,4,1,3,4]
错误:
追溯(最近的呼叫最后):
文件“naive.py”,第46行,中 num = training_data [training_data [i] == row [i]& training_data [9] == 1] .groupby([i,9])。size()
文件“/usr/local/lib/python2.7/dist-packages/pandas/core/generic.py”,第917行,非零 .format(个体。的类即可。的名称))
ValueError:Series的真值是不明确的。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
答案 0 :(得分:0)
在training_data[i]==row[i]&training_data[9]==1
中,运算符&
的优先级高于==
。在执行AND之前用括号括起关系表达式:
(training_data[i]==row[i]) & (training_data[9]==1)