Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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,我有一个熊猫数据框,看起来像下面的那个,我想去掉几个标签 有效的方法是: df = df[df['label'] != 'A'] 或: 但是,我有许多要删除的标签,因此我正在寻找一个类似以下的命令: df = df[df['label'] != ['A','B']] 但这不起作用 如何在一个命令中放置或反向选择具有不同标签的多行?我现在只使用熊猫几个星期,但找不到这个问题的答案 label value1 value2 value3 0 A 63.923445 1

我有一个熊猫数据框,看起来像下面的那个,我想去掉几个标签

有效的方法是:

df = df[df['label'] != 'A']
或:

但是,我有许多要删除的标签,因此我正在寻找一个类似以下的命令:

df = df[df['label'] != ['A','B']]
但这不起作用

如何在一个命令中放置或反向选择具有不同标签的多行?我现在只使用熊猫几个星期,但找不到这个问题的答案

    label   value1  value2  value3
0    A   63.923445   109.688995 -0.692308
1    A   42.488038   87.081340  -0.692308
2    A   45.167464   91.267943  -0.504808
3    A   48.229665   88.755981  -1.485577
4    B   78.010000   180.100000  3.710000
5    B   87.833333   183.800000  2.225000
6    B   93.820000   181.980000  3.460000
7    B   110.836667  221.806667  2.833333
8    C   48.750000   127.450000  NaN
9    C   43.950000   103.100000  NaN
10   C   NaN     74.970000   NaN
11   D   27.800000   89.250000   3.550000
12   D   28.000000   92.080000   3.530000
13   E   61.400000   99.300000   NaN
14   E   95.600000   257.000000  NaN
15   E   49.800000   145.000000  NaN
16   G   64.710000   136.000000  1.160000
试试这个:

import numpy as np
df = df[np.logical_not(df['label'].isin(['A','B']))]

请参见

可能的副本
import numpy as np
df = df[np.logical_not(df['label'].isin(['A','B']))]
df = df[- df['label'].isin(['A', 'B'])]