import numpy as np import pytest from pandas import DataFrame, SparseArray, SparseDataFrame, bdate_range data = {'A': [np.nan, np.nan, np.nan, 0, 1, 2, 3, 4, 5, 6], 'B': [0, 1, 2, np.nan, np.nan, np.nan, 3, 4, 5, 6], 'C': np.arange(10, dtype=np.float64), 'D': [0, 1, 2, 3, 4, 5, np.nan, np.nan, np.nan, np.nan]} dates = bdate_range('1/1/2011', periods=10) # fixture names must be compatible with the tests in # tests/frame/test_api.SharedWithSparse @pytest.fixture def float_frame_dense(): """ Fixture for dense DataFrame of floats with DatetimeIndex Columns are ['A', 'B', 'C', 'D']; some entries are missing """ return DataFrame(data, index=dates) @pytest.fixture def float_frame(): """ Fixture for sparse DataFrame of floats with DatetimeIndex Columns are ['A', 'B', 'C', 'D']; some entries are missing """ # default_kind='block' is the default return SparseDataFrame(data, index=dates, default_kind='block') @pytest.fixture def float_frame_int_kind(): """ Fixture for sparse DataFrame of floats with DatetimeIndex Columns are ['A', 'B', 'C', 'D'] and default_kind='integer'. Some entries are missing. """ return SparseDataFrame(data, index=dates, default_kind='integer') @pytest.fixture def float_string_frame(): """ Fixture for sparse DataFrame of floats and strings with DatetimeIndex Columns are ['A', 'B', 'C', 'D', 'foo']; some entries are missing """ sdf = SparseDataFrame(data, index=dates) sdf['foo'] = SparseArray(['bar'] * len(dates)) return sdf @pytest.fixture def float_frame_fill0_dense(): """ Fixture for dense DataFrame of floats with DatetimeIndex Columns are ['A', 'B', 'C', 'D']; missing entries have been filled with 0 """ values = SparseDataFrame(data).values values[np.isnan(values)] = 0 return DataFrame(values, columns=['A', 'B', 'C', 'D'], index=dates) @pytest.fixture def float_frame_fill0(): """ Fixture for sparse DataFrame of floats with DatetimeIndex Columns are ['A', 'B', 'C', 'D']; missing entries have been filled with 0 """ values = SparseDataFrame(data).values values[np.isnan(values)] = 0 return SparseDataFrame(values, columns=['A', 'B', 'C', 'D'], default_fill_value=0, index=dates) @pytest.fixture def float_frame_fill2_dense(): """ Fixture for dense DataFrame of floats with DatetimeIndex Columns are ['A', 'B', 'C', 'D']; missing entries have been filled with 2 """ values = SparseDataFrame(data).values values[np.isnan(values)] = 2 return DataFrame(values, columns=['A', 'B', 'C', 'D'], index=dates) @pytest.fixture def float_frame_fill2(): """ Fixture for sparse DataFrame of floats with DatetimeIndex Columns are ['A', 'B', 'C', 'D']; missing entries have been filled with 2 """ values = SparseDataFrame(data).values values[np.isnan(values)] = 2 return SparseDataFrame(values, columns=['A', 'B', 'C', 'D'], default_fill_value=2, index=dates) @pytest.fixture def empty_frame(): """ Fixture for empty SparseDataFrame """ return SparseDataFrame()