选择具有['A','B']列的行,其中具有'C'列的行包含python(Pandas)中的NaN值
现在,我想选择数据框的“ A”列和“ B”列,其中“ C”列包含NaN值。
如果需要选择所有列或仅一列,那么我可以在下面做
df['A'][df['C'].isnull()]
或
df[df['C'].isnull()]
但是我不知道如何选择多个列。
答案 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)
我喜欢dropna
和drop
,因为当我们忘记添加.copy()
sub=df.dropna(subset=['C']).drop('C',1)
sub
Out[26]:
A B
1 2 6
3 4 8