我需要使用下面df上的交叉表的帮助。
a b c
-------------------------
| a | None | c |
| a | b | None |
| None | b | c |
| a | None | None |
| None | None | None |
我想提取指定了多个字母的行(a&b,a&c,b&c),即1-3行。我相信最简单的方法是通过交叉表(我知道我会得到一个计数,但是我也可以通过这种方法查看行吗?)。我要避免写冗长的“或”语句来实现这一目标。
所需的输出:
a b c
-------------------------
| a | None | c |
| a | b | None |
| None | b | c |
答案 0 :(得分:1)
您不需要交叉表,只需使用notnull
检查非空数:
df[df.notnull().sum(1).gt(1)]
a b c
0 a NaN c
1 a b NaN
2 NaN b c
或者您可以使用dropna
:
t = 2
df.dropna(thresh=df.shape[1] - t + 1)
a b c
0 a NaN c
1 a b NaN
2 NaN b c