如果我们想要删除任何列缺少值的行,我们可以这样做:
df.dropna(axis = 0, how = 'any', inplace = True)
如果我们想要删除该行中任何一列具有特定值的行(如果列的值为" turtle"),我们如何做同样的事情?
第x行的某些列包含" turtle"所以我们放弃它。
答案 0 :(得分:8)
演示:
样本DF:
In [7]: import string
In [8]: df = pd.DataFrame(np.random.randint(100, size=(10,10)), columns=list(string.ascii_letters[:10]))
In [9]: df
Out[9]:
a b c d e f g h i j
0 95 79 14 64 97 3 0 49 84 2
1 52 82 72 40 55 26 21 69 2 35
2 30 63 27 63 14 23 70 62 83 80
3 23 90 96 43 75 23 27 47 83 40
4 82 87 63 37 36 58 88 18 50 29
5 92 29 93 6 62 85 87 74 21 32
6 23 64 19 22 50 86 51 93 46 1
7 56 0 8 46 1 56 82 15 55 45
8 67 35 83 65 63 58 48 85 75 90
9 12 7 45 28 33 98 42 93 78 12
让我们删除包含至少一个0
的所有行:
In [10]: df.eq(0)
Out[10]:
a b c d e f g h i j
0 False False False False False False True False False False
1 False False False False False False False False False False
2 False False False False False False False False False False
3 False False False False False False False False False False
4 False False False False False False False False False False
5 False False False False False False False False False False
6 False False False False False False False False False False
7 False True False False False False False False False False
8 False False False False False False False False False False
9 False False False False False False False False False False
In [11]: res = df[~df.eq(0).any(1)]
In [12]: res
Out[12]:
a b c d e f g h i j
1 52 82 72 40 55 26 21 69 2 35
2 30 63 27 63 14 23 70 62 83 80
3 23 90 96 43 75 23 27 47 83 40
4 82 87 63 37 36 58 88 18 50 29
5 92 29 93 6 62 85 87 74 21 32
6 23 64 19 22 50 86 51 93 46 1
8 67 35 83 65 63 58 48 85 75 90
9 12 7 45 28 33 98 42 93 78 12
答案 1 :(得分:2)
因为你知道,如何dropnan
,你可以replace
到NaN
df=df.replace('Yourvalue',np.nan).dropna(axis = 0, how = 'any')