def test_is_dataframe_like(): df = cudf.DataFrame({'x': [1, 2, 3]}) assert is_dataframe_like(df) assert is_series_like(df.x) assert is_index_like(df.index) assert not is_dataframe_like(df.x) assert not is_series_like(df) assert not is_index_like(df)
def test_is_dataframe_like(monkeypatch, frame_value_counts): # When we drop support for pandas 1.0, this compat check can # be dropped if frame_value_counts: monkeypatch.setattr(pd.DataFrame, "value_counts", lambda x: None, raising=False) df = pd.DataFrame({"x": [1, 2, 3]}) ddf = dd.from_pandas(df, npartitions=1) assert is_dataframe_like(df) assert is_dataframe_like(ddf) assert not is_dataframe_like(df.x) assert not is_dataframe_like(ddf.x) assert not is_dataframe_like(df.index) assert not is_dataframe_like(ddf.index) assert not is_dataframe_like(pd.DataFrame) assert not is_series_like(df) assert not is_series_like(ddf) assert is_series_like(df.x) assert is_series_like(ddf.x) assert not is_series_like(df.index) assert not is_series_like(ddf.index) assert not is_series_like(pd.Series) assert not is_index_like(df) assert not is_index_like(ddf) assert not is_index_like(df.x) assert not is_index_like(ddf.x) assert is_index_like(df.index) assert is_index_like(ddf.index) assert not is_index_like(pd.Index) # The following checks support of class wrappers, which # requires the comparions of `x.__class__` instead of `type(x)` class DataFrameWrapper: __class__ = pd.DataFrame wrap = DataFrameWrapper() wrap.dtypes = None wrap.columns = None assert is_dataframe_like(wrap) class SeriesWrapper: __class__ = pd.Series wrap = SeriesWrapper() wrap.dtype = None wrap.name = None assert is_series_like(wrap) class IndexWrapper: __class__ = pd.Index wrap = IndexWrapper() wrap.dtype = None wrap.name = None assert is_index_like(wrap)
def test_is_dataframe_like(): df = pd.DataFrame({'x': [1, 2, 3]}) assert is_dataframe_like(df) assert not is_dataframe_like(df.x) assert not is_dataframe_like(df.index) assert not is_series_like(df) assert is_series_like(df.x) assert not is_series_like(df.index) assert not is_index_like(df) assert not is_index_like(df.x) assert is_index_like(df.index) ddf = dd.from_pandas(df, npartitions=1) assert is_dataframe_like(ddf)
def _maybe_partial_time_string(index, indexer): """ Convert indexer for partial string selection if data has DatetimeIndex/PeriodIndex """ # do not pass dd.Index assert is_index_like(index) if not isinstance(index, (pd.DatetimeIndex, pd.PeriodIndex)): return indexer if PANDAS_GT_130: kind_option = {} else: kind_option = {"kind": "loc"} if isinstance(indexer, slice): if isinstance(indexer.start, str): start = index._maybe_cast_slice_bound(indexer.start, "left", **kind_option) else: start = indexer.start if isinstance(indexer.stop, str): stop = index._maybe_cast_slice_bound(indexer.stop, "right", **kind_option) else: stop = indexer.stop return slice(start, stop) elif isinstance(indexer, str): start = index._maybe_cast_slice_bound(indexer, "left", **kind_option) stop = index._maybe_cast_slice_bound(indexer, "right", **kind_option) return slice(min(start, stop), max(start, stop)) return indexer
def unique(x, series_name=None): out = x.unique() # out can be either an np.ndarray or may already be a series # like object. When out is an np.ndarray, it must be wrapped. if not (is_series_like(out) or is_index_like(out)): out = pd.Series(out, name=series_name) return out
def _monotonic_chunk(x, prop): if x.empty: # if input is empty, return empty df for chunk data = None else: data = x if is_index_like(x) else x.iloc data = [[getattr(x, prop), data[0], data[-1]]] return pd.DataFrame(data=data, columns=["monotonic", "first", "last"])
def test_is_dataframe_like(monkeypatch, frame_value_counts): # When we drop support for pandas 1.0, this compat check can # be dropped if frame_value_counts: monkeypatch.setattr(pd.DataFrame, "value_counts", lambda x: None, raising=False) df = pd.DataFrame({"x": [1, 2, 3]}) ddf = dd.from_pandas(df, npartitions=1) assert is_dataframe_like(df) assert is_dataframe_like(ddf) assert not is_dataframe_like(df.x) assert not is_dataframe_like(ddf.x) assert not is_dataframe_like(df.index) assert not is_dataframe_like(ddf.index) assert not is_dataframe_like(pd.DataFrame) assert not is_series_like(df) assert not is_series_like(ddf) assert is_series_like(df.x) assert is_series_like(ddf.x) assert not is_series_like(df.index) assert not is_series_like(ddf.index) assert not is_series_like(pd.Series) assert not is_index_like(df) assert not is_index_like(ddf) assert not is_index_like(df.x) assert not is_index_like(ddf.x) assert is_index_like(df.index) assert is_index_like(ddf.index) assert not is_index_like(pd.Index)
def test_is_dataframe_like(): df = pd.DataFrame({'x': [1, 2, 3]}) ddf = dd.from_pandas(df, npartitions=1) assert is_dataframe_like(df) assert is_dataframe_like(ddf) assert not is_dataframe_like(df.x) assert not is_dataframe_like(ddf.x) assert not is_dataframe_like(df.index) assert not is_dataframe_like(ddf.index) assert not is_dataframe_like(pd.DataFrame) assert not is_series_like(df) assert not is_series_like(ddf) assert is_series_like(df.x) assert is_series_like(ddf.x) assert not is_series_like(df.index) assert not is_series_like(ddf.index) assert not is_series_like(pd.Series) assert not is_index_like(df) assert not is_index_like(ddf) assert not is_index_like(df.x) assert not is_index_like(ddf.x) assert is_index_like(df.index) assert is_index_like(ddf.index) assert not is_index_like(pd.Index)