@@ -1398,3 +1398,139 @@ def test_numpy_func_call(self):
13981398 'std' , 'min' , 'max' ]
13991399 for func in funcs :
14001400 getattr (np , func )(self .frame )
1401+
1402+ @pytest .mark .parametrize ('data' , [
1403+ [[1 , 1 ], [2 , 2 ], [3 , 3 ], [4 , 4 ], [0 , 0 ]],
1404+ [[1.0 , 1.0 ], [2.0 , 2.0 ], [3.0 , 3.0 ], [4.0 , 4.0 ], [nan , nan ]],
1405+ [
1406+ [1.0 , 1.0 + 1.0j ],
1407+ [2.0 + 2.0j , 2.0 ],
1408+ [3.0 , 3.0 + 3.0j ],
1409+ [4.0 + 4.0j , 4.0 ],
1410+ [nan , nan ]
1411+ ]
1412+ ])
1413+ @pytest .mark .xfail (reason = 'Wrong SparseBlock initialization '
1414+ '(GH 17386)' )
1415+ def test_where_with_numeric_data (self , data ):
1416+ # GH 17386
1417+ lower_bound = 1.5
1418+
1419+ sparse = SparseDataFrame (data )
1420+ result = sparse .where (sparse > lower_bound )
1421+
1422+ dense = DataFrame (data )
1423+ dense_expected = dense .where (dense > lower_bound )
1424+ sparse_expected = SparseDataFrame (dense_expected )
1425+
1426+ tm .assert_frame_equal (result , dense_expected )
1427+ tm .assert_sp_frame_equal (result , sparse_expected )
1428+
1429+ @pytest .mark .parametrize ('data' , [
1430+ [[1 , 1 ], [2 , 2 ], [3 , 3 ], [4 , 4 ], [0 , 0 ]],
1431+ [[1.0 , 1.0 ], [2.0 , 2.0 ], [3.0 , 3.0 ], [4.0 , 4.0 ], [nan , nan ]],
1432+ [
1433+ [1.0 , 1.0 + 1.0j ],
1434+ [2.0 + 2.0j , 2.0 ],
1435+ [3.0 , 3.0 + 3.0j ],
1436+ [4.0 + 4.0j , 4.0 ],
1437+ [nan , nan ]
1438+ ]
1439+ ])
1440+ @pytest .mark .parametrize ('other' , [
1441+ True ,
1442+ - 100 ,
1443+ 0.1 ,
1444+ 100.0 + 100.0j
1445+ ])
1446+ @pytest .mark .xfail (reason = 'Wrong SparseBlock initialization '
1447+ '(GH 17386)' )
1448+ def test_where_with_numeric_data_and_other (self , data , other ):
1449+ # GH 17386
1450+ lower_bound = 1.5
1451+
1452+ sparse = SparseDataFrame (data )
1453+ result = sparse .where (sparse > lower_bound , other )
1454+
1455+ dense = DataFrame (data )
1456+ dense_expected = dense .where (dense > lower_bound , other )
1457+ sparse_expected = SparseDataFrame (dense_expected ,
1458+ default_fill_value = other )
1459+
1460+ tm .assert_frame_equal (result , dense_expected )
1461+ tm .assert_sp_frame_equal (result , sparse_expected )
1462+
1463+ @pytest .mark .xfail (reason = 'Wrong SparseBlock initialization '
1464+ '(GH 17386)' )
1465+ def test_where_with_bool_data (self ):
1466+ # GH 17386
1467+ data = [[False , False ], [True , True ], [False , False ]]
1468+ cond = True
1469+
1470+ sparse = SparseDataFrame (data )
1471+ result = sparse .where (sparse == cond )
1472+
1473+ dense = DataFrame (data )
1474+ dense_expected = dense .where (dense == cond )
1475+ sparse_expected = SparseDataFrame (dense_expected )
1476+
1477+ tm .assert_frame_equal (result , dense_expected )
1478+ tm .assert_sp_frame_equal (result , sparse_expected )
1479+
1480+ @pytest .mark .parametrize ('other' , [
1481+ True ,
1482+ 0 ,
1483+ 0.1 ,
1484+ 100.0 + 100.0j
1485+ ])
1486+ @pytest .mark .xfail (reason = 'Wrong SparseBlock initialization '
1487+ '(GH 17386)' )
1488+ def test_where_with_bool_data_and_other (self , other ):
1489+ # GH 17386
1490+ data = [[False , False ], [True , True ], [False , False ]]
1491+ cond = True
1492+
1493+ sparse = SparseDataFrame (data )
1494+ result = sparse .where (sparse == cond , other )
1495+
1496+ dense = DataFrame (data )
1497+ dense_expected = dense .where (dense == cond , other )
1498+ sparse_expected = SparseDataFrame (dense_expected ,
1499+ default_fill_value = other )
1500+
1501+ tm .assert_frame_equal (result , dense_expected )
1502+ tm .assert_sp_frame_equal (result , sparse_expected )
1503+
1504+ @pytest .mark .xfail (reason = 'Wrong SparseBlock initialization '
1505+ '(GH 17386)' )
1506+ def test_quantile (self ):
1507+ # GH 17386
1508+ data = [[1 , 1 ], [2 , 10 ], [3 , 100 ], [nan , nan ]]
1509+ q = 0.1
1510+
1511+ sparse_df = SparseDataFrame (data )
1512+ result = sparse_df .quantile (q )
1513+
1514+ dense_df = DataFrame (data )
1515+ dense_expected = dense_df .quantile (q )
1516+ sparse_expected = SparseSeries (dense_expected )
1517+
1518+ tm .assert_series_equal (result , dense_expected )
1519+ tm .assert_sp_series_equal (result , sparse_expected )
1520+
1521+ @pytest .mark .xfail (reason = 'Wrong SparseBlock initialization '
1522+ '(GH 17386)' )
1523+ def test_quantile_multi (self ):
1524+ # GH 17386
1525+ data = [[1 , 1 ], [2 , 10 ], [3 , 100 ], [nan , nan ]]
1526+ q = [0.1 , 0.5 ]
1527+
1528+ sparse_df = SparseDataFrame (data )
1529+ result = sparse_df .quantile (q )
1530+
1531+ dense_df = DataFrame (data )
1532+ dense_expected = dense_df .quantile (q )
1533+ sparse_expected = SparseDataFrame (dense_expected )
1534+
1535+ tm .assert_frame_equal (result , dense_expected )
1536+ tm .assert_sp_frame_equal (result , sparse_expected )
0 commit comments