diff --git a/pandas/core/series.py b/pandas/core/series.py index bd56202a5a..b0bab125ae 100644 --- a/pandas/core/series.py +++ b/pandas/core/series.py @@ -1700,6 +1700,27 @@ def hist(self, ax=None, grid=True, **kwds): return ax + @classmethod + def from_csv(cls, path, sep=',', parse_dates=True): + """ + Read delimited file into Series + + Parameters + ---------- + path : string + sep : string, default ',' + Field delimiter + parse_dates : boolean, default True + Parse dates. Different default from read_table + + Returns + ------- + y : Series + """ + from pandas.core.frame import DataFrame + df = DataFrame.from_csv(path, header=None, sep=sep, parse_dates=parse_dates) + return df[df.columns[0]] + def to_csv(self, path): """ Write the Series to a CSV file diff --git a/pandas/tests/test_series.py b/pandas/tests/test_series.py index ba569a6836..162000dcad 100644 --- a/pandas/tests/test_series.py +++ b/pandas/tests/test_series.py @@ -4,6 +4,7 @@ import os import operator import unittest +import cStringIO as StringIO import nose @@ -1065,6 +1066,28 @@ def test_rank(self): assert_almost_equal(ranks, exp) + def test_from_csv(self): + self.ts.to_csv('_foo') + ts = Series.from_csv('_foo') + assert_series_equal(self.ts, ts) + + self.series.to_csv('_foo') + series = Series.from_csv('_foo') + assert_series_equal(self.series, series) + + outfile = open('_foo', 'w') + outfile.write('1998-01-01|1.0\n1999-01-01|2.0') + outfile.close() + series = Series.from_csv('_foo',sep='|') + checkseries = Series({datetime(1998,1,1): 1.0, datetime(1999,1,1): 2.0}) + assert_series_equal(checkseries, series) + + series = Series.from_csv('_foo',sep='|',parse_dates=False) + checkseries = Series({'1998-01-01': 1.0, '1999-01-01': 2.0}) + assert_series_equal(checkseries, series) + + os.remove('_foo') + def test_to_csv(self): self.ts.to_csv('_foo')