nb_products_per_basket['order_canceled'] =
nb_products_per_basket['InvoiceNo'].apply(lambda x:int('C' in x))
我有这个:
TypeError: argument of type 'int' is not iterable
我该如何解决?
答案 0 :(得分:1)
在InvoiceNo
列中有一个,多个或所有值都是整数。
如果混合列值(C
位于样本数据中未显示的另一个值中)可能通过astype
强制转换为string
s的解决方案:
nb_products_per_basket['order_canceled'] =
nb_products_per_basket['InvoiceNo'].astype(str).apply(lambda x:int('C' in x))
使用str.contains
的另一种解决方案:
nb_products_per_basket['order_canceled'] =
nb_products_per_basket['InvoiceNo'].str.contains('C', na=False).astype(int)
如果所有值都是整数,则没有C
,因此请始终获取0
。