MCPcopy
hub / github.com/pandas-dev/pandas / test_rank_na_option

Method test_rank_na_option

pandas/tests/frame/methods/test_rank.py:138–212  ·  view source on GitHub ↗
(self, float_frame)

Source from the content-addressed store, hash-verified

136 float_string_frame.rank(axis=1)
137
138 def test_rank_na_option(self, float_frame):
139 sp_stats = pytest.importorskip("scipy.stats")
140
141 float_frame.loc[::2, "A"] = np.nan
142 float_frame.loc[::3, "B"] = np.nan
143 float_frame.loc[::4, "C"] = np.nan
144 float_frame.loc[::5, "D"] = np.nan
145
146 # bottom
147 ranks0 = float_frame.rank(na_option="bottom")
148 ranks1 = float_frame.rank(1, na_option="bottom")
149
150 fvals = float_frame.fillna(np.inf).values
151
152 exp0 = np.apply_along_axis(sp_stats.rankdata, 0, fvals)
153 exp1 = np.apply_along_axis(sp_stats.rankdata, 1, fvals)
154
155 tm.assert_almost_equal(ranks0.values, exp0)
156 tm.assert_almost_equal(ranks1.values, exp1)
157
158 # top
159 ranks0 = float_frame.rank(na_option="top")
160 ranks1 = float_frame.rank(1, na_option="top")
161
162 fval0 = float_frame.fillna((float_frame.min() - 1).to_dict()).values
163 fval1 = float_frame.T
164 fval1 = fval1.fillna((fval1.min() - 1).to_dict()).T
165 fval1 = fval1.fillna(np.inf).values
166
167 exp0 = np.apply_along_axis(sp_stats.rankdata, 0, fval0)
168 exp1 = np.apply_along_axis(sp_stats.rankdata, 1, fval1)
169
170 tm.assert_almost_equal(ranks0.values, exp0)
171 tm.assert_almost_equal(ranks1.values, exp1)
172
173 # descending
174
175 # bottom
176 ranks0 = float_frame.rank(na_option="top", ascending=False)
177 ranks1 = float_frame.rank(1, na_option="top", ascending=False)
178
179 fvals = float_frame.fillna(np.inf).values
180
181 exp0 = np.apply_along_axis(sp_stats.rankdata, 0, -fvals)
182 exp1 = np.apply_along_axis(sp_stats.rankdata, 1, -fvals)
183
184 tm.assert_almost_equal(ranks0.values, exp0)
185 tm.assert_almost_equal(ranks1.values, exp1)
186
187 # descending
188
189 # top
190 ranks0 = float_frame.rank(na_option="bottom", ascending=False)
191 ranks1 = float_frame.rank(1, na_option="bottom", ascending=False)
192
193 fval0 = float_frame.fillna((float_frame.min() - 1).to_dict()).values
194 fval1 = float_frame.T
195 fval1 = fval1.fillna((fval1.min() - 1).to_dict()).T

Callers

nothing calls this directly

Calls 5

rankMethod · 0.45
fillnaMethod · 0.45
to_dictMethod · 0.45
minMethod · 0.45
raisesMethod · 0.45

Tested by

no test coverage detected