首先我有一个熊猫系列的推荐产品(recmd_prdt_list)。在本系列中,可能存在已删除的产品。为了从推荐产品中删除已删除的产品,我执行了以下操作:
recmd_prdt_list = user_lookup['Recommended items']
recmd_prdt_list
0 PLV08、PLPD04、PBC07、555、PLF02、963、PLF07、...
1 123、345、R922、华硕009、AIMAC、Th001、SAM S9、...
2 LGRFG、LG、1025、COFMH、8048、BY7、PLHL4、569、...
3 COFMH、5454、8048、1025、LG、len123、Th001、PL...
4 LGRFG, AIM-Pro, 569, Asus009, PLHL3, PL04, PLH...
5 PLV08、PLF09、PLF02、PBC04、PLF07、AIM-Pro、PL...
type(recmd_prdt_list)
pandas.core.series.Series
产品状态DataFrame
product_status
ItemCode Status DeletedStatus
AIMAC 2 True
AIM-Pro 2 True
SAM S9 2 True
SH MV 2 True
COFMH 2 True
LGRFG 2 True
type(product_status)
pandas.core.frame.DataFrame
first_row = user_lookup['Recommended items'][0]
first_row
'PLV08、PLPD04、PBC07、555、PLF02、963、PLF07、HG8、嫉妒21、4'
type(first_row)
字符串
将 str 转换为列表
first_row_list = list(first_row .split(","))
first_row_list
['PLV08'、'PLPD04'、'PBC07'、'555'、'PLF02'、'963'、'PLF07'、'HG8'、'嫉妒21'、'4']
从第一行开始,我使用第一个 itemcode 来检查已删除的状态:
product_details = product_status.loc[product_status['ItemCode'] == 'PLV08']
product_details
ItemCode Status DeletedStatus
PLV08 2 False
type(product_details)
pandas.core.frame.DataFrame
product_details['DeletedStatus']
693 假的
名称:DeletedStatus,数据类型:bool
以便检查相应行中每个产品的删除状态并保存到新列表中。我写了以下代码:
itemcode = 'PLV08'
activ_product = []
if itemcode in product_status['ItemCode'].values:
print(itemcode)
product_details = product_status.loc[product_status['ItemCode'] == itemcode]
print(product_details)
if product_details['Status'] == 2 & product_details['DeletedStatus'] == 'False':
activ_product.append(itemcode)
错误 :
PLV08
ClientId ItemCode Status DeletedStatus
499 2213 PLV08 2 False
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-35-9507e1ada5f7> in <module>()
5 product_details = product_status.loc[product_status['ItemCode'] == itemcode]
6 print(product_details)
----> 7 if product_details['Status'] == 2 & product_details['DeletedStatus'] == 'False':
8 activ_product.append(itemcode)
~/.virtualenvs/sysg_python3/lib/python3.5/site-packages/pandas/core/generic.py in __nonzero__(self)
951 raise ValueError("The truth value of a {0} is ambiguous. "
952 "Use a.empty, a.bool(), a.item(), a.any() or a.all()."
--> 953 .format(self.__class__.__name__))
954
955 __bool__ = __nonzero__
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
如何解决这个错误?