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

时间:2019-12-23 17:56:46

标签: python pandas

选择具有['A','B']列的行,其中具有'C'列的行包含python(Pandas)中的NaN值

  1. 我有3列“ A”,“ B”,“ C”的熊猫数据框。
  2. “ C”列中的某些行包含NaN值。

现在,我想选择数据框的“ A”列和“ B”列,其中“ C”列包含NaN值。

如果需要选择所有列或仅一列,那么我可以在下面做

df['A'][df['C'].isnull()]

df[df['C'].isnull()]

但是我不知道如何选择多个列。

3 个答案:

答案 0 :(得分:2)

您可以在第一个表格中放置多个列名。

df[['A','B']][df['C'].isnull()]                                            

答案 1 :(得分:2)

您可以使用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

答案 2 :(得分:1)

我喜欢dropnadrop,因为当我们忘记添加.copy()

时,我们不会收到复制警告。
sub=df.dropna(subset=['C']).drop('C',1)
sub
Out[26]: 
   A  B
1  2  6
3  4  8