Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Add Series.from_csv with some tests #482

Closed
wants to merge 1 commit into
from
Jump to file or symbol
Failed to load files and symbols.
+44 −0
Split
View
@@ -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
@@ -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')