@@ -85,6 +85,8 @@ class DateConversionError(Exception):
85
85
Alternative argument name for sep
86
86
encoding : string, default None
87
87
Encoding to use for UTF when reading/writing (ex. 'utf-8')
88
+ squeeze : boolean, default False
89
+ If the parsed data only contains one column then return a Series
88
90
89
91
Returns
90
92
-------
@@ -205,7 +207,8 @@ def read_csv(filepath_or_buffer,
205
207
converters = None ,
206
208
verbose = False ,
207
209
delimiter = None ,
208
- encoding = None ):
210
+ encoding = None ,
211
+ squeeze = False ):
209
212
kwds = locals ()
210
213
211
214
# Alias sep -> delimiter.
@@ -236,7 +239,8 @@ def read_table(filepath_or_buffer,
236
239
converters = None ,
237
240
verbose = False ,
238
241
delimiter = None ,
239
- encoding = None ):
242
+ encoding = None ,
243
+ squeeze = False ):
240
244
kwds = locals ()
241
245
242
246
# Alias sep -> delimiter.
@@ -271,7 +275,8 @@ def read_fwf(filepath_or_buffer,
271
275
converters = None ,
272
276
delimiter = None ,
273
277
verbose = False ,
274
- encoding = None ):
278
+ encoding = None ,
279
+ squeeze = False ):
275
280
276
281
kwds = locals ()
277
282
@@ -372,14 +377,16 @@ class TextParser(object):
372
377
Number of line at bottom of file to skip
373
378
encoding : string, default None
374
379
Encoding to use for UTF when reading/writing (ex. 'utf-8')
380
+ squeeze : boolean, default False
381
+ returns Series if only one column
375
382
"""
376
383
377
384
def __init__ (self , f , delimiter = None , names = None , header = 0 ,
378
385
index_col = None , na_values = None , thousands = None ,
379
386
comment = None , parse_dates = False , keep_date_col = False ,
380
387
date_parser = None , dayfirst = False ,
381
388
chunksize = None , skiprows = None , skip_footer = 0 , converters = None ,
382
- verbose = False , encoding = None ):
389
+ verbose = False , encoding = None , squeeze = False ):
383
390
"""
384
391
Workhorse function for processing nested list into DataFrame
385
392
@@ -439,6 +446,7 @@ def __init__(self, f, delimiter=None, names=None, header=0,
439
446
self .index_name = self ._get_index_name ()
440
447
self ._first_chunk = True
441
448
449
+ self .squeeze = squeeze
442
450
443
451
def _make_reader (self , f ):
444
452
import csv
@@ -755,7 +763,10 @@ def get_chunk(self, rows=None):
755
763
756
764
data = _convert_to_ndarrays (data , self .na_values , self .verbose )
757
765
758
- return DataFrame (data = data , columns = columns , index = index )
766
+ df = DataFrame (data = data , columns = columns , index = index )
767
+ if self .squeeze and len (df .columns ) == 1 :
768
+ return df [df .columns [0 ]]
769
+ return df
759
770
760
771
def _find_line_number (self , exp_len , chunk_len , chunk_i ):
761
772
if exp_len is None :
0 commit comments