首页 > 解决方案 > 错误类型错误:无法将 dtyped [float64] 数组与 [bool] 类型的标量进行比较

问题描述

我正在尝试计算在一个数据框中完成两个条件的值,以将其包含在另一个数据框中,但出现错误

for index, row in data_orders_2_sample.iterrows():

    row['potential_couriers'] = ((data_courier_cash_balance_2_sample[data_courier_cash_balance_2_sample.acum_amount_eu >= 
                                                                                    row['purchase_price']]) 
                                 & (data_courier_cash_balance_2_sample.created_day == row['assignment_time'])
                                ).count()['courier_id']
    data_orders_2_sample.at[index,'potential_couriers'] = row['potential_couriers']

data_orders_2_sample.head()

错误是

TypeError: cannot compare a dtyped [float64] array with a scalar of type [bool]

问题是,如果我评论这两个条件之一,代码就会正常,所以错误在 & 但我不知道如何解决它。请问有什么帮助吗?

谢谢你们 :)

标签: python

解决方案


感谢你的回答。我找到了另一种使用 numpy 的解决方法

import numpy as np

for index, row in data_orders_2.iterrows():

    row['potential_couriers'] = np.sum(((data_courier_cash_balance_2.acum_amount_eu) >= 
    row.purchase_price) & 
    (data_courier_cash_balance_2.created_day == 
    row.assignment_time))
    data_orders_2.at[index,'potential_couriers'] = row['potential_couriers']

data_orders_2

推荐阅读