下面是包含三个列和一个列表的示例dataframe
如果列位置包含列表中的值,则我的目标是删除行。如果list有一个值sales,那么我们的代码应该找到并删除行,即使它位于列的字符串位置之间。
我已经厌倦了模糊匹配,但这对我没有帮助。
发布于 2022-11-04 00:03:01
这是你能做到的一种方法。假设这些词是不区分大小写的。这意味着sales
在elimination_list
中将删除包含单词Sales or sales or SALES
等的位置。
在下面的示例中,我选择删除sales
和marketing
这两个词。在检查字符串是否包含position
中的任何单词之前,将elimination_list列中的字符串转换为小写。
import pandas as pd
# Create the dataframe
df = pd.DataFrame({"firstname":['Roy','Kean','Mark','Smith', 'Jao'],
"lastname":['Ran','Sam','Stonis','Steve','Felx'],
"position":['Sales Manager','Group Chief sales Officer','marketing Manager','Data Analyst','Developer']})
# Enter words used to eliminate rows
elimination_list = ['sales','marketing']
# Select rows based on elimination list
rows_to_keep=[]
for substring in df.position:
word_list = substring.lower().split()
rows_to_keep.append(not bool(set(word_list) & set(elimination_list)))
# Create a new dataframe (output)
output = df[rows_to_keep]
print(output)
输出:
firstname lastname position
3 Smith Steve Data Analyst
4 Jao Felx Developer
https://stackoverflow.com/questions/74272143
复制相似问题