python - 在 pandas 的 pd.apply() 中使用 lambda
问题描述
我有一个带有“类别”列的熊猫数据框。该列将列表作为元素,每个列表都包含一些单词。我想找出有多少列表中出现了“pizza”或“Italian”。这些列看起来像:
我尝试了下面的代码,但我得到的一切都是False
.
business.categories.apply(lambda x: ('pizza' in x) or ("Italian" in x))
解决方案
不要使用or
使用|
business['categories'].map(lambda x: ('pizza' in x) | ("Italian" in x))
pandas 不喜欢and
or 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))
推荐阅读
- python - 我需要将一些行从导入到 Python 的 CSV 更改为列。CSV 有副标题
- python - Python3 unittest 中的 JSONDecodeError(尝试从另一个文件断言函数输出)
- python - 逐步循环切片列表
- docker - 使用外部程序处理 REST 请求的最佳方式?
- node.js - SOAP Webservice 二 SSL 认证 Node JS
- google-cloud-platform - 如何继承访问权以查看属于 GCP 组织的所有项目?
- android - 如何在任何 Jetpack Compose 视图上禁用涟漪效应?
- c - 从主线程触发一个线程中的动作的防弹方法?
- java - 暴力破解Java中的加密密钥
- pine-script - 随机松脚本策略