123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- import numpy as np
- import pytest
- from pandas import DataFrame, SparseDataFrame
- from pandas.util import testing as tm
- pytestmark = pytest.mark.skip("Wrong SparseBlock initialization (GH 17386)")
- @pytest.mark.parametrize('data', [
- [[1, 1], [2, 2], [3, 3], [4, 4], [0, 0]],
- [[1.0, 1.0], [2.0, 2.0], [3.0, 3.0], [4.0, 4.0], [np.nan, np.nan]],
- [
- [1.0, 1.0 + 1.0j],
- [2.0 + 2.0j, 2.0],
- [3.0, 3.0 + 3.0j],
- [4.0 + 4.0j, 4.0],
- [np.nan, np.nan]
- ]
- ])
- @pytest.mark.xfail(reason='Wrong SparseBlock initialization (GH#17386)')
- def test_where_with_numeric_data(data):
- # GH 17386
- lower_bound = 1.5
- sparse = SparseDataFrame(data)
- result = sparse.where(sparse > lower_bound)
- dense = DataFrame(data)
- dense_expected = dense.where(dense > lower_bound)
- sparse_expected = SparseDataFrame(dense_expected)
- tm.assert_frame_equal(result, dense_expected)
- tm.assert_sp_frame_equal(result, sparse_expected)
- @pytest.mark.parametrize('data', [
- [[1, 1], [2, 2], [3, 3], [4, 4], [0, 0]],
- [[1.0, 1.0], [2.0, 2.0], [3.0, 3.0], [4.0, 4.0], [np.nan, np.nan]],
- [
- [1.0, 1.0 + 1.0j],
- [2.0 + 2.0j, 2.0],
- [3.0, 3.0 + 3.0j],
- [4.0 + 4.0j, 4.0],
- [np.nan, np.nan]
- ]
- ])
- @pytest.mark.parametrize('other', [
- True,
- -100,
- 0.1,
- 100.0 + 100.0j
- ])
- @pytest.mark.xfail(reason='Wrong SparseBlock initialization (GH#17386)')
- def test_where_with_numeric_data_and_other(data, other):
- # GH 17386
- lower_bound = 1.5
- sparse = SparseDataFrame(data)
- result = sparse.where(sparse > lower_bound, other)
- dense = DataFrame(data)
- dense_expected = dense.where(dense > lower_bound, other)
- sparse_expected = SparseDataFrame(dense_expected,
- default_fill_value=other)
- tm.assert_frame_equal(result, dense_expected)
- tm.assert_sp_frame_equal(result, sparse_expected)
- @pytest.mark.xfail(reason='Wrong SparseBlock initialization (GH#17386)')
- def test_where_with_bool_data():
- # GH 17386
- data = [[False, False], [True, True], [False, False]]
- cond = True
- sparse = SparseDataFrame(data)
- result = sparse.where(sparse == cond)
- dense = DataFrame(data)
- dense_expected = dense.where(dense == cond)
- sparse_expected = SparseDataFrame(dense_expected)
- tm.assert_frame_equal(result, dense_expected)
- tm.assert_sp_frame_equal(result, sparse_expected)
- @pytest.mark.parametrize('other', [
- True,
- 0,
- 0.1,
- 100.0 + 100.0j
- ])
- @pytest.mark.xfail(reason='Wrong SparseBlock initialization (GH#17386)')
- def test_where_with_bool_data_and_other(other):
- # GH 17386
- data = [[False, False], [True, True], [False, False]]
- cond = True
- sparse = SparseDataFrame(data)
- result = sparse.where(sparse == cond, other)
- dense = DataFrame(data)
- dense_expected = dense.where(dense == cond, other)
- sparse_expected = SparseDataFrame(dense_expected,
- default_fill_value=other)
- tm.assert_frame_equal(result, dense_expected)
- tm.assert_sp_frame_equal(result, sparse_expected)
|