首页 > 解决方案 > 在 pandas 的 pd.apply() 中使用 lambda

问题描述

我有一个带有“类别”列的熊猫数据框。该列将列表作为元素,每个列表都包含一些单词。我想找出有多少列表中出现了“pizza”或“Italian”。这些列看起来像: 屏幕截图列的样子

我尝试了下面的代码,但我得到的一切都是False.

business.categories.apply(lambda x: ('pizza' in x) or ("Italian" in x))

标签: pythonpandas

解决方案


不要使用or使用|

business['categories'].map(lambda x: ('pizza' in x) | ("Italian" in x))

pandas 不喜欢andor or,使用&or|

需要注意的一点:

例如,确保列表中的值没有空格Italian并且_Italian不同。如果是这种情况,您必须在两个部分中执行此操作

打扫

business['categories'] = business['categories'].map(lambda x: [i.strip() for i in x])

然后映射

business['categories'].map(lambda x: ('pizza' in x) | ("Italian" in x))


推荐阅读