PERF: avoid object conversion in fillna(method=pad|backfill) for masked arrays by simonjayhawkins · Pull Request #39953 · pandas-dev/pandas (original) (raw)
This was failing CI (now also on master):
=================================== FAILURES ===================================
________________ TestMissing.test_fillna_no_op_returns_copy[0] _________________
[gw1] linux -- Python 3.8.8 /home/vsts/miniconda3/envs/pandas-dev/bin/python
self = <pandas.tests.extension.test_sparse.TestMissing object at 0x7f0590718cd0>
data = [7, 33, 0, 95, 38, 0, 30, 26, 0, 47, 6, 0, 66, 4, 0, 57, 94, 0, 19, 23, 0, 48, 3, 0, 75, 74, 0, 51, 74, 0, 13, 73, 0, ...66, 67, 69, 70, 72, 73, 75,
76, 78, 79, 81, 82, 84, 85, 87, 88, 90, 91, 93, 94, 96, 97, 99],
dtype=int32)
request = <FixtureRequest for <Function test_fillna_no_op_returns_copy[0]>>
def test_fillna_no_op_returns_copy(self, data, request):
if np.isnan(data.fill_value):
request.node.add_marker(
pytest.mark.xfail(reason="returns array with different fill value")
)
> super().test_fillna_no_op_returns_copy(data)
pandas/tests/extension/test_sparse.py:229:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
pandas/tests/extension/base/missing.py:80: in test_fillna_no_op_returns_copy
result = data.fillna(method="backfill")
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = [7, 33, 0, 95, 38, 0, 30, 26, 0, 47, 6, 0, 66, 4, 0, 57, 94, 0, 19, 23, 0, 48, 3, 0, 75, 74, 0, 51, 74, 0, 13, 73, 0, ...66, 67, 69, 70, 72, 73, 75,
76, 78, 79, 81, 82, 84, 85, 87, 88, 90, 91, 93, 94, 96, 97, 99],
dtype=int32)
value = None, method = 'backfill', limit = None
def fillna(self, value=None, method=None, limit=None):
"""
Fill missing values with `value`.
> warnings.warn(msg, PerformanceWarning)
E pandas.errors.PerformanceWarning: fillna with 'method' requires high memory usage.
pandas/core/arrays/sparse/array.py:672: PerformanceWarning