我可以使用data[data[data > 10].any(1)]
选择任何列大于10的行。如果我想选择任何5列大于10的行,该怎么办?
答案 0 :(得分:5)
以下内容对您有用:
data[data[data > 10].count(axis=1) > 5]
示例:
In [66]:
df = pd.DataFrame({'a':randn(10), 'b':randn(10), 'c':randn(10), 'd':randn(10), 'e':randn(10), 'f':randn(10), 'g':randn(10)})
df
Out[66]:
a b c d e f g
0 -2.617089 -0.882830 0.678067 -0.517271 0.451493 1.233842 2.039522
1 -0.099578 0.316943 0.707360 0.408488 -0.127735 0.587747 -0.472138
2 -0.717133 0.804504 1.290014 0.091469 -0.311926 0.493378 0.337818
3 0.443820 1.148113 0.437646 0.098209 -0.072878 1.741442 1.954516
4 1.674700 -1.155307 -0.464377 -1.403315 -2.009475 -0.358216 0.430474
5 -0.243898 0.457013 -1.303361 -0.259384 -0.618927 -0.115834 0.062917
6 -1.731918 0.582375 0.007224 -0.336893 -0.092084 0.724403 0.622719
7 0.377062 -0.475285 -1.343725 0.572877 0.613228 0.573816 0.854494
8 0.063625 -0.484536 0.093442 -1.015500 1.062488 -1.818364 -1.139001
9 -0.349160 0.731415 0.418029 -0.341685 -0.421163 0.105534 0.642873
[10 rows x 7 columns]
In [85]:
df[df > 1.0]
Out[85]:
a b c d e f g
0 NaN NaN NaN NaN NaN 1.233842 2.039522
1 NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN 1.290014 NaN NaN NaN NaN
3 NaN 1.148113 NaN NaN NaN 1.741442 1.954516
4 1.6747 NaN NaN NaN NaN NaN NaN
5 NaN NaN NaN NaN NaN NaN NaN
6 NaN NaN NaN NaN NaN NaN NaN
7 NaN NaN NaN NaN NaN NaN NaN
8 NaN NaN NaN NaN 1.062488 NaN NaN
9 NaN NaN NaN NaN NaN NaN NaN
[10 rows x 7 columns]
In [86]:
df[df[df > 1.0].count(axis=1) > 2]
Out[86]:
a b c d e f g
3 0.44382 1.148113 0.437646 0.098209 -0.072878 1.741442 1.954516
[1 rows x 7 columns]