Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 31 additions & 6 deletions python/ray/dataframe/dataframe.py
Original file line number Diff line number Diff line change
Expand Up @@ -2672,9 +2672,20 @@ def nsmallest(self, n, columns, keep='first'):
"github.com/ray-project/ray.")

def nunique(self, axis=0, dropna=True):
raise NotImplementedError(
"To contribute to Pandas on Ray, please visit "
"github.com/ray-project/ray.")
"""Return Series with number of distinct
observations over requested axis.

Args:
axis : {0 or ‘index’, 1 or ‘columns’}, default 0
dropna : boolean, default True

Returns:
nunique : Series
"""
def remote_func(df):
return df.nunique(axis=axis, dropna=dropna)

return self._arithmetic_helper(remote_func, axis)

def pct_change(self, periods=1, fill_method='pad', limit=None, freq=None,
**kwargs):
Expand Down Expand Up @@ -3408,9 +3419,23 @@ def shift(self, periods=1, freq=None, axis=0):

def skew(self, axis=None, skipna=None, level=None, numeric_only=None,
**kwargs):
raise NotImplementedError(
"To contribute to Pandas on Ray, please visit "
"github.com/ray-project/ray.")
"""Return unbiased skew over requested axis Normalized by N-1

Args:
axis : {index (0), columns (1)}
skipna : boolean, default True
Exclude NA/null values when computing the result.
level : int or level name, default None
numeric_only : boolean, default None

Returns:
skew : Series or DataFrame (if level specified)
"""
def remote_func(df):
return df.skew(axis=axis, skipna=skipna, level=level,
numeric_only=numeric_only, **kwargs)

return self._arithmetic_helper(remote_func, axis, level)

def slice_shift(self, periods=1, axis=0):
raise NotImplementedError(
Expand Down
22 changes: 12 additions & 10 deletions python/ray/dataframe/test/test_dataframe.py
Original file line number Diff line number Diff line change
Expand Up @@ -2149,11 +2149,12 @@ def test_nsmallest():
ray_df.nsmallest(None, None)


def test_nunique():
ray_df = create_test_dataframe()

with pytest.raises(NotImplementedError):
ray_df.nunique()
@pytest.fixture
def test_nunique(ray_df, pandas_df):
assert(ray_df_equals_pandas(ray_df.nunique(),
pandas_df.nunique()))
assert(ray_df_equals_pandas(ray_df.nunique(axis=1),
pandas_df.nunique(axis=1)))


def test_pct_change():
Expand Down Expand Up @@ -2651,11 +2652,12 @@ def test_shift():
ray_df.shift()


def test_skew():
ray_df = create_test_dataframe()

with pytest.raises(NotImplementedError):
ray_df.skew()
@pytest.fixture
def test_skew(ray_df, pandas_df):
assert(ray_df_equals_pandas(ray_df.skew(),
pandas_df.skew()))
assert(ray_df_equals_pandas(ray_df.skew(axis=1),
pandas_df.skew(axis=1)))


def test_slice_shift():
Expand Down