选择列为['A','B']的行,其中列为"C"的行包含python(熊猫(中的NaN值
- 我有三列"A"、"B"、"C"的熊猫数据框。
- 在"C"列中,有一些行包含 NaN 值。
现在我想选择数据框的"A"列和"B"列,其中"C"列包含 NaN 值。
如果需要选择所有列或仅选择一列,那么我可以执行以下操作,
df['A'][df['C'].isnull()]
或
df[df['C'].isnull()]
但我不明白如何选择多列。
您可以在第一种形式中放置多个列名。
df[['A','B']][df['C'].isnull()]
您可以使用loc
,然后选择列列表:
df.loc[df['C'].isnull(), ['A','B']]
例如
>>> df = pd.DataFrame({'A':[1,2,3,4], 'B':[5,6,7,8], 'C':[np.nan,1,np.nan,2]})
>>> df
A B C
0 1 5 NaN
1 2 6 1.0
2 3 7 NaN
3 4 8 2.0
>>> df.loc[df['C'].isnull(), ['A','B']]
A B
0 1 5
2 3 7
我喜欢dropna
和drop
,因为当我们忘记添加.copy()
时,我们不会有复制警告
sub=df.dropna(subset=['C']).drop('C',1)
sub
Out[26]:
A B
1 2 6
3 4 8