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