python - 从数据框的列中过滤掉关键字(不区分大小写) - Pandas
问题描述
想要基于现有列中的单词创建新列 新列应为 Lobby、UPS、Electrical 或“空格”
Name SubUnitName
Lobby Area Lobby
Sensor - Bank lobby Lobby
Temperature - UPS Room UPS
Sensor - Electric Room Electric
Sensor - electrical Room Electric
Temperature - electric Room Electric
Sensor
如上所示,搜索应不区分大小写,如果找到“电气”或“电气”,则结果应为“电气”
解决方案
建立要在“名称”列中查找的单词列表,然后应用函数“find_match”以创建新的“SubUnitName”列。
search_list = ["Lobby", "UPS", "Electric"]
def find_match(name_str: str) -> str:
for item in search_list:
item_lc = item.lower()
if item_lc in name_str.lower():
return item
df.loc[:, "SubUnitName"] = df["Name"].apply(find_match)
将 None 替换为最后一行的空格
df["SubUnitName"].fillna('', inplace=True)
推荐阅读
- java - android.view.InflateException 错误作为用户的崩溃报告。可能是什么原因?
- javascript - 出于某种原因,后台 iframe 重定向到与脚本中 src 中列出的 URL 不同的 URL
- node.js - 是否可以使用语义 UI 更改(html 和正文)背景颜色
- content-security-policy - 允许嵌入内容的 Content-Security-Policy 和实现
- python - 2个列表之间的区别
- javascript - 你如何使用 Ramda 对一组单词进行排序?
- python - Python中的矩阵乘积
- javascript - MongoDB 在调用字符串中与 int 进行比较
- python - Django 不会连接到远程 RDS
- wordpress - Cpanel 无法识别 wordpress 类别和标签