print(test.query('code == ["A", "B", "C", "D", "E"]') [['code']].count())
这不会返回可以与>运算符(大于)进行比较的数值。我该如何更改?
这就是if test.query('code == ["A", "B", "C", "D", "E"]') [['code']].count()>0:
将显示错误消息的原因。
有人可以帮我吗?
答案 0 :(得分:2)
我认为问题在于您的代码返回一项Series
,因为[[code]]
-它返回一列DataFrame。
test = pd.DataFrame({
'code':list('ABCDEF'),
})
print(test.query('code == ["A", "B", "C", "D", "E"]')[['code']])
code
0 A
1 B
2 C
3 D
4 E
print(test.query('code == ["A", "B", "C", "D", "E"]') [['code']].count())
code 5
dtype: int64
将标量更改为['code']
的{{1}}:
Series
另一个想法是通过print (test.query('code == ["A", "B", "C", "D", "E"]')['code'].count())
5
获取DataFrame的长度:
len
或者使用Series.isin
并按print (len(test.query('code == ["A", "B", "C", "D", "E"]')))
5
计数True
:
sum