diff --git a/python/cudf/cudf/core/dataframe.py b/python/cudf/cudf/core/dataframe.py index 030db06527e..cf760d68f44 100644 --- a/python/cudf/cudf/core/dataframe.py +++ b/python/cudf/cudf/core/dataframe.py @@ -6931,12 +6931,22 @@ def cov(self, **kwargs): df.columns = self.columns return df - def corr(self): - """Compute the correlation matrix of a DataFrame. - """ - corr = cupy.corrcoef(self.values, rowvar=False) - df = DataFrame(cupy.asfortranarray(corr)).set_index(self.columns) - df.columns = self.columns + def corr(self, method): + """Compute the correlation matrix of a DataFrame. Method: {'pearson', 'spearman'} + """ + if method == 'pearson': + corr = cupy.corrcoef(self.values, rowvar=False) + df = DataFrame(cupy.asfortranarray(corr)).set_index(self.columns) + df.columns = self.columns + + elif method == 'spearman': + corr = cupy.corrcoef(self.rank().values, rowvar=False) + df = DataFrame(cupy.asfortranarray(corr)).set_index(self.columns) + df.columns = self.columns + + else: + raise ValueError("method must be either 'pearson', 'spearman'") + return df def to_dict(self, orient="dict", into=dict):