Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/Pandas:从列表中的字符串匹配上的数据框中删除(而不是筛选!)行_Python_Pandas - Fatal编程技术网

Python/Pandas:从列表中的字符串匹配上的数据框中删除(而不是筛选!)行

Python/Pandas:从列表中的字符串匹配上的数据框中删除(而不是筛选!)行,python,pandas,Python,Pandas,包含有关如何筛选行的信息。但是,我想知道如何根据列表中的字符串匹配从数据帧中删除而不是筛选行 最快的方法是什么 编辑:下面是一个使用另一个线程中提供的数据集的示例 >>> import pandas as pd >>> >>> df = pd.read_csv('data.csv') >>> df.head() fName lName email title 0 Joh

包含有关如何筛选行的信息。但是,我想知道如何根据列表中的字符串匹配从数据帧中删除而不是筛选行

最快的方法是什么

编辑:下面是一个使用另一个线程中提供的数据集的示例

>>> import pandas as pd
>>> 
>>> df = pd.read_csv('data.csv')
>>> df.head()

  fName   lName                    email   title
0  John   Smith         jsmith@gmail.com     CEO
1   Joe   Schmo      jschmo@business.com  Bagger
2  Some  Person  some.person@hotmail.com   Clerk
给出的一个解决方案涉及过滤掉一些行,如下所示:

In [6]: to_drop = ['Clerk', 'Bagger']
        df[~df['title'].isin(to_drop)]

Out[6]:

  fName  lName             email title
0  John  Smith  jsmith@gmail.com   CEO
这是可行的,但数据框仍包含我要永久删除的行:

In [7]: df.head()

Out[7]:

  fName   lName                    email   title
0  John   Smith         jsmith@gmail.com     CEO
1   Joe   Schmo      jschmo@business.com  Bagger
2  Some  Person  some.person@hotmail.com   Clerk

我很快就想出来了。对于这个看似幼稚的问题,我深表歉意,但希望它能帮助像我这样的Python新手

正如@mattmilten所提出的解决方案,简单地将过滤的输出分配给相同的或新的数据帧。就是

In [3]: to_drop = ['Clerk', 'Bagger']
        df = df[~df['title'].isin(to_drop)]
        df

Out[3]:
        fName   lName      email          title
      0  John   Smith  jsmith@gmail.com     CEO

好的,您只需将筛选的输出分配给一个新的数据帧。或者将on与
inplace=True
一起使用……您能否提供一个输入和所需的输出,以便我们可以测试您的问题?@ysearka。好主意。请参阅上面的编辑。如果您不关心索引,只需为筛选器分配一个新变量并重置索引即可:
new\u df=df[~df['title'].isin(to_drop)]