从熊猫数据框中选择多行,其中一列包含一些值作为 NaN



选择列为['A','B']的行,其中列为"C"的行包含python(熊猫(中的NaN值

  1. 我有三列"A"、"B"、"C"的熊猫数据框。
  2. 在"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

我喜欢dropnadrop,因为当我们忘记添加.copy()时,我们不会有复制警告

sub=df.dropna(subset=['C']).drop('C',1)
sub
Out[26]: 
A  B
1  2  6
3  4  8

相关内容

最新更新