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 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)
def cummax_aggregate(x, y): if is_series_like(x) or is_dataframe_like(x): return x.where((x > y) | x.isnull(), y, axis=x.ndim - 1) else: # scalar return x if x > y else y