Python 如何比较数据帧中的多个布尔值
我有这样一个df:Python 如何比较数据帧中的多个布尔值,python,pandas,boolean,series,Python,Pandas,Boolean,Series,我有这样一个df: customer_id offer_id viewed_withintime completed_withintime 0 389bc3fa690240e798340f5a15918d5c f19421c1d4aa40978ebb69ca19b0e20d True True 1 389bc3fa690240e798340f5a15918d5
customer_id offer_id viewed_withintime completed_withintime
0 389bc3fa690240e798340f5a15918d5c f19421c1d4aa40978ebb69ca19b0e20d True True
1 389bc3fa690240e798340f5a15918d5c f19421c1d4aa40978ebb69ca19b0e20d True False
2 389bc3fa690240e798340f5a15918d5c f19421c1d4aa40978ebb69ca19b0e20d True False
我想创建一个名为offer\u succusful
的新列,如果viewsed\u withintime
和completed\u withintime
都是True
,那么offer\u succusful
的值是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))
您可以使用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))
您还可以使用:
df['offer_successful'] = (df['viewed_withintime']== True) & (df['completed_withintime']== True)
您还可以使用:
df['offer_successful'] = (df['viewed_withintime']== True) & (df['completed_withintime']== True)