python - 如何比较数据框中的多个布尔值
问题描述
我有一个这样的df:
customer_id offer_id viewed_withintime completed_withintime
0 389bc3fa690240e798340f5a15918d5c f19421c1d4aa40978ebb69ca19b0e20d True True
1 389bc3fa690240e798340f5a15918d5c f19421c1d4aa40978ebb69ca19b0e20d True False
2 389bc3fa690240e798340f5a15918d5c f19421c1d4aa40978ebb69ca19b0e20d True False
我想创建一个名为 的新列offer_succussful
,如果两者viewed_withintime
都是completed_withintime
,True
则值为offer_succussful
is 1
,否则为0
。
这是我的代码:
# label offer_successful to 1 if an offer is viewed and completed within offer_endtime, if not, set it to 0
offer_success_merge['offer_successful'] = (offer_success_merge['completed_withintime'] == True) and (offer_success_merge['viewed_withintime'] == True)
这将返回错误:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
有人可以看看我,不知道如何修改这段代码......提前谢谢。
解决方案
您可以使用 numpy 模块来解决问题:
import numpy as np
offer_success_merge['offer_successful'] = np.logical_and((offer_success_merge['completed_withintime'] == True), (offer_success_merge['viewed_withintime'] == True))
推荐阅读
- codenameone - FCM 传入消息如何与 CN1$AndroidPendingNotifications 格式相协调?
- sql-server - 在没有聚合函数的 SQL Server 中使用 PIVOT
- r - r中带有plm和coeftest的二元运算符错误的非数字参数
- json - 如何从数据帧列中的路径读取 AWS 上 pyspark 中的许多 Json 文件?
- powershell - 在 PS 中循环回到脚本的开头
- hive - HUE 工作流程失败:主类 [org.apache.oozie.action.hadoop.Hive2Main],退出代码 [2]
- python - 根据其他列值的存在删除重复行
- c# - 每个不为空的 Parameter 对象属性,作为条件添加到表达式谓词中
- react-native - 如何在 React Native 中对平面列表进行排序?
- html - tinymce 在博客中有双文本框