|
11 | 11 | import pandas as pd
|
12 | 12 | dec = np.testing.dec
|
13 | 13 |
|
14 |
| -from pandas.util.testing import (assert_almost_equal, assert_series_equal, |
| 14 | +from pandas.util.testing import (assert_almost_equal, assert_series_equal, assert_index_equal, |
15 | 15 | assert_frame_equal, assert_panel_equal, assertRaisesRegexp,
|
16 | 16 | assert_numpy_array_equal, assert_attr_equal)
|
17 | 17 | from numpy.testing import assert_equal
|
@@ -770,6 +770,24 @@ def test_combine_first(self):
|
770 | 770 | assert_sp_series_equal(result, result2)
|
771 | 771 | assert_sp_series_equal(result, expected)
|
772 | 772 |
|
| 773 | +class TestSparseHandlingMultiIndexes(tm.TestCase): |
| 774 | + |
| 775 | + def setUp(self): |
| 776 | + miindex = pd.MultiIndex.from_product([["x","y"], ["10","20"]],names=['row-foo', 'row-bar']) |
| 777 | + micol = pd.MultiIndex.from_product([['a','b','c'], ["1","2"]],names=['col-foo', 'col-bar']) |
| 778 | + dense_multiindex_frame = pd.DataFrame(index=miindex, columns=micol).sortlevel().sortlevel(axis=1) |
| 779 | + self.dense_multiindex_frame = dense_multiindex_frame.fillna(value=3.14) |
| 780 | + |
| 781 | + def test_to_sparse_preserve_multiindex_names_columns(self): |
| 782 | + sparse_multiindex_frame = self.dense_multiindex_frame.to_sparse().copy() |
| 783 | + assert_index_equal(sparse_multiindex_frame.columns,self.dense_multiindex_frame.columns) |
| 784 | + |
| 785 | + def test_round_trip_preserve_multiindex_names(self): |
| 786 | + sparse_multiindex_frame = self.dense_multiindex_frame.to_sparse() |
| 787 | + round_trip_multiindex_frame = sparse_multiindex_frame.to_dense() |
| 788 | + assert_frame_equal(self.dense_multiindex_frame,round_trip_multiindex_frame, |
| 789 | + check_column_type=True,check_names=True) |
| 790 | + |
773 | 791 |
|
774 | 792 | class TestSparseSeriesScipyInteraction(tm.TestCase):
|
775 | 793 | # Issue 8048: add SparseSeries coo methods
|
|
0 commit comments