有一个像这样的数据框:
a b c d
1 1 Nan 1
Nan 2 Nan 2
Nan 3 Nan 3
4 4 4 Nan
我需要从除“с”之外的所有列中获取包含“Nan”的所有行,同时列“с”仍然可见,因此它的内容也很重要。换句话说,输出应该是这样的:
a b c d
Nan 2 Nan 2
Nan 3 Nan 3
4 4 4 Nan
我能够通过将“a、b、d”列中的 Nan 值选择性地替换为“值 1”并将“c”列中的值替换为“值 2”来做到这一点,从而能够按照我的意愿进行过滤。但是一个真正的表包含大约 160 亿个值,所以我认为我的方式不是最好的方式......
最佳答案
尝试将 loc
与 drop
、isna
和 any
一起使用:
df.loc[df.drop('c', axis=1).isna().any(1)]
输出:
a b c d
1 NaN 2.0 NaN 2.0
2 NaN 3.0 NaN 3.0
3 4.0 4.0 4.0 NaN
关于Python 3.6 Pandas 从某些列中选择所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68800729/