TypeError:类型'int'的参数不可迭代(使用lambda)

时间:2019-01-22 09:14:31

标签: python pandas numpy

enter image description here

enter image description here

 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

我该如何解决?

1 个答案:

答案 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