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'])]