Skip to content

Commit 32c5fe4

Browse files
Dieter Vandenbusschewesm
Dieter Vandenbussche
authored andcommitted
Add Series.from_csv with some tests
1 parent 3686a62 commit 32c5fe4

File tree

2 files changed

+44
-0
lines changed

2 files changed

+44
-0
lines changed

pandas/core/series.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1700,6 +1700,27 @@ def hist(self, ax=None, grid=True, **kwds):
17001700

17011701
return ax
17021702

1703+
@classmethod
1704+
def from_csv(cls, path, sep=',', parse_dates=True):
1705+
"""
1706+
Read delimited file into Series
1707+
1708+
Parameters
1709+
----------
1710+
path : string
1711+
sep : string, default ','
1712+
Field delimiter
1713+
parse_dates : boolean, default True
1714+
Parse dates. Different default from read_table
1715+
1716+
Returns
1717+
-------
1718+
y : Series
1719+
"""
1720+
from pandas.core.frame import DataFrame
1721+
df = DataFrame.from_csv(path, header=None, sep=sep, parse_dates=parse_dates)
1722+
return df[df.columns[0]]
1723+
17031724
def to_csv(self, path):
17041725
"""
17051726
Write the Series to a CSV file

pandas/tests/test_series.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import os
55
import operator
66
import unittest
7+
import cStringIO as StringIO
78

89
import nose
910

@@ -1065,6 +1066,28 @@ def test_rank(self):
10651066

10661067
assert_almost_equal(ranks, exp)
10671068

1069+
def test_from_csv(self):
1070+
self.ts.to_csv('_foo')
1071+
ts = Series.from_csv('_foo')
1072+
assert_series_equal(self.ts, ts)
1073+
1074+
self.series.to_csv('_foo')
1075+
series = Series.from_csv('_foo')
1076+
assert_series_equal(self.series, series)
1077+
1078+
outfile = open('_foo', 'w')
1079+
outfile.write('1998-01-01|1.0\n1999-01-01|2.0')
1080+
outfile.close()
1081+
series = Series.from_csv('_foo',sep='|')
1082+
checkseries = Series({datetime(1998,1,1): 1.0, datetime(1999,1,1): 2.0})
1083+
assert_series_equal(checkseries, series)
1084+
1085+
series = Series.from_csv('_foo',sep='|',parse_dates=False)
1086+
checkseries = Series({'1998-01-01': 1.0, '1999-01-01': 2.0})
1087+
assert_series_equal(checkseries, series)
1088+
1089+
os.remove('_foo')
1090+
10681091
def test_to_csv(self):
10691092
self.ts.to_csv('_foo')
10701093

0 commit comments

Comments
 (0)