From 1def9a1a5eea03c01bc4bba4cbc2236830bdba0e Mon Sep 17 00:00:00 2001 From: Ashwin Srinath Date: Thu, 27 Sep 2018 06:13:10 -0400 Subject: [PATCH] Add Series.from_pandas() method --- pygdf/series.py | 7 +++++++ pygdf/tests/test_dataframe.py | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/pygdf/series.py b/pygdf/series.py index d5e866186d1..53189538669 100644 --- a/pygdf/series.py +++ b/pygdf/series.py @@ -58,6 +58,13 @@ def from_masked_array(cls, data, mask, null_count=None): col = columnops.as_column(data).set_mask(mask, null_count=null_count) return cls(data=col) + @classmethod + def from_pandas(cls, series): + """Create a Series from a Pandas.Series.""" + s = cls(data=series.data) + s = s.set_index(series.index) + return s + def __init__(self, data, index=None): if isinstance(data, Series): index = data._index diff --git a/pygdf/tests/test_dataframe.py b/pygdf/tests/test_dataframe.py index 4c7e15390d3..ee41b246752 100644 --- a/pygdf/tests/test_dataframe.py +++ b/pygdf/tests/test_dataframe.py @@ -92,6 +92,13 @@ def test_series_basic(): a4 = np.hstack([a1, a2, a3]) np.testing.assert_equal(series.to_array(), a4) + # Make series from pandas.Series + sr = pd.Series(data=np.arange(5), index=np.arange(1, 6)) + series = Series.from_pandas(sr) + assert len(series) == 5 + np.testing.assert_equal(series.to_array(), np.arange(5)) + np.testing.assert_equal(series.index, np.arange(1, 6)) + def test_series_indexing(): a1 = np.arange(20)