Python错误:TypeError:无法将dtyped[float64]数组与[bool]类型的标量进行比较

Python错误:TypeError:无法将dtyped[float64]数组与[bool]类型的标量进行比较,python,pandas,Python,Pandas,下面是我的数据帧的一个小示例 In [10]: df Out[10]: TXN_KEY Send_Agent Pay_Agent Send_Amount Pay_Amount 0 13272184 AWD120279 AEU002152 85.99 85.04 1 13272947 ARA030122 AEV000034 402.01 400.00 2 13273453 API185805 API1

下面是我的数据帧的一个小示例

In [10]: df
 Out[10]:
   TXN_KEY Send_Agent  Pay_Agent  Send_Amount  Pay_Amount
0     13272184  AWD120279  AEU002152        85.99       85.04
1     13272947  ARA030122  AEV000034       402.01      400.00
2     13273453  API185805  API190139        22.98       22.98
3     13273870  ANO080012  API352676       490.00      475.68
4     13274676  AUK359401  AED002782       616.16      600.87
5     13274871  ACL000105  ACB020203       193.78      185.21
6     13275194  ADA374245  ANP023424       100.00       98.50


grouped = df.groupby('Send_Agent')
一个计算发送数量与下一个相同次数的函数可以正常工作

   def repeat_count(s):
    return (s.shift() == s).sum()

   In [35]: result = grouped.agg({'Send_Amount':[repeat_count]})

   In [36]: result
   Out[36]:
              Send_Amount
              repeat_count
Send_Agent
A03010016             0
A03020026             0
A10000075             0
A10000316             0
A10000932             0
A10060013             0
A10080022             0
A11120030             0
但是,当我试图计算发送金额在900和1000之间的所有发送代理的计数时,我得到了一个错误:

In [27]: def banded_txns(s):
return(s >=900.00 & s  < 1000.00).count()

 In [28]: result = grouped.agg({'Send_Amount':banded_txns})

 TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]
[27]中的
:def带式TXN:
返回值(s>=900.00&s<1000.00)。计数()
在[28]中:result=grouped.agg({'Send\u Amount':banded\u txns})
TypeError:无法将dtyped[float64]数组与[bool]类型的标量进行比较

我无法理解为什么它适用于一种比较而不适用于另一种。提前感谢。

您缺少一些括号:

def banded_txns(s):
    return ((s >= 900.00) & (s < 1000.00)).count()
def带状探头:
返回((s>=900.00)和(s<1000.00)).count()

缺少一些括号:

def banded_txns(s):
    return ((s >= 900.00) & (s < 1000.00)).count()
def带状探头:
返回((s>=900.00)和(s<1000.00)).count()

如果这个或任何答案解决了你的问题,请点击复选标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。@ VISHAL BHATT,如果这个或任何答案已经解决了你的问题,请考虑点击复选标记。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。