首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果列(位置)包含列表中的值,则从dataframe中删除该行。

如果列(位置)包含列表中的值,则从dataframe中删除该行。
EN

Stack Overflow用户
提问于 2022-11-01 06:12:48
回答 1查看 26关注 0票数 0

下面是包含三个列和一个列表的示例dataframe

如果列位置包含列表中的值,则我的目标是删除行。如果list有一个值sales,那么我们的代码应该找到并删除行,即使它位于列的字符串位置之间。

我已经厌倦了模糊匹配,但这对我没有帮助。

EN

回答 1

Stack Overflow用户

发布于 2022-11-04 00:03:01

这是你能做到的一种方法。假设这些词是不区分大小写的。这意味着saleselimination_list中将删除包含单词Sales or sales or SALES等的位置。

在下面的示例中,我选择删除salesmarketing这两个词。在检查字符串是否包含position中的任何单词之前,将elimination_list列中的字符串转换为小写。

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
  firstname lastname      position
3     Smith    Steve  Data Analyst
4       Jao     Felx     Developer
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74272143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档