Python 从数据帧的列中筛选出关键字(不区分大小写)-不区分大小写
要基于现有列中的单词创建新列吗 新栏应为大厅、UPS、电气或“空白区”Python 从数据帧的列中筛选出关键字(不区分大小写)-不区分大小写,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,要基于现有列中的单词创建新列吗 新栏应为大厅、UPS、电气或“空白区” 如上所述,搜索应不区分大小写,如果找到“Electric”或“Electric”,则结果应为“Electric”我为您提供了一个解决方案。它检查字符串之间是否匹配,如果找到,则将其添加到将成为新列的列表中 import pandas as pd d = { "Name" : ["Sensor - Bank lobby ", "Sensor - Bank Lobby &q
如上所述,搜索应不区分大小写,如果找到“Electric”或“Electric”,则结果应为“Electric”我为您提供了一个解决方案。它检查字符串之间是否匹配,如果找到,则将其添加到将成为新列的列表中
import pandas as pd
d = { "Name" : ["Sensor - Bank lobby ", "Sensor - Bank Lobby ", "Temperature - UPS Room", "Sensor - Electric Room ", "Sensor - electrical Room", "Sensor"]}
df = pd.DataFrame(data=d)
list_sub_units = []
list_matches = ["Lobby", "UPS", "Electric"]
for entry in df["Name"]:
matched = False
for match in list_matches:
if entry.lower().find(match.lower()) > 0:
list_sub_units.append(match)
matched = True
if not matched:
list_sub_units.append("")
df["SubUnitName"] = list_sub_units
print(df)
在“Name”列中建立要查找的单词列表,然后应用函数“find_match”创建新的“Name”列 将“无”替换为最后一行的空白
df["SubUnitName"].fillna('', inplace=True)
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)
df["SubUnitName"].fillna('', inplace=True)