Skip to content

Commit faa6cc7

Browse files
committed
Merge pull request #11750 from varun-kr/add_index_tostring
ENH : GH11729 added index parameter in series to_string
2 parents 4979f7a + 6e29159 commit faa6cc7

File tree

4 files changed

+26
-9
lines changed

4 files changed

+26
-9
lines changed

doc/source/whatsnew/v0.18.0.txt

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ Other enhancements
3232
^^^^^^^^^^^^^^^^^^
3333

3434
- Handle truncated floats in SAS xport files (:issue:`11713`)
35+
- Added option to hide index in ``Series.to_string`` (:issue:`11729`)
3536
- ``read_excel`` now supports s3 urls of the format ``s3://bucketname/filename`` (:issue:`11447`)
3637

3738
.. _whatsnew_0180.enhancements.rounding:

pandas/core/format.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -126,14 +126,15 @@ def to_string(self):
126126
class SeriesFormatter(object):
127127

128128
def __init__(self, series, buf=None, length=True, header=True,
129-
na_rep='NaN', name=False, float_format=None, dtype=True,
130-
max_rows=None):
129+
index=True, na_rep='NaN', name=False, float_format=None,
130+
dtype=True, max_rows=None):
131131
self.series = series
132132
self.buf = buf if buf is not None else StringIO()
133133
self.name = name
134134
self.na_rep = na_rep
135135
self.header = header
136136
self.length = length
137+
self.index = index
137138
self.max_rows = max_rows
138139

139140
if float_format is None:
@@ -241,7 +242,10 @@ def to_string(self):
241242
fmt_values.insert(row_num + n_header_rows, dot_str)
242243
fmt_index.insert(row_num + 1, '')
243244

244-
result = self.adj.adjoin(3, *[fmt_index[1:], fmt_values])
245+
if self.index:
246+
result = self.adj.adjoin(3, *[fmt_index[1:], fmt_values])
247+
else:
248+
result = self.adj.adjoin(3, fmt_values)
245249

246250
if self.header and have_header:
247251
result = fmt_index[0] + '\n' + result

pandas/core/series.py

+8-6
Original file line numberDiff line numberDiff line change
@@ -959,7 +959,7 @@ def __unicode__(self):
959959
return result
960960

961961
def to_string(self, buf=None, na_rep='NaN', float_format=None, header=True,
962-
length=False, dtype=False, name=False, max_rows=None):
962+
index=True, length=False, dtype=False, name=False, max_rows=None):
963963
"""
964964
Render a string representation of the Series
965965
@@ -974,6 +974,8 @@ def to_string(self, buf=None, na_rep='NaN', float_format=None, header=True,
974974
default None
975975
header: boolean, default True
976976
Add the Series header (index name)
977+
index : bool, optional
978+
Add index (row) labels, default True
977979
length : boolean, default False
978980
Add the Series length
979981
dtype : boolean, default False
@@ -990,8 +992,8 @@ def to_string(self, buf=None, na_rep='NaN', float_format=None, header=True,
990992
"""
991993

992994
the_repr = self._get_repr(float_format=float_format, na_rep=na_rep,
993-
header=header, length=length, dtype=dtype,
994-
name=name, max_rows=max_rows)
995+
header=header, index=index, length=length,
996+
dtype=dtype, name=name, max_rows=max_rows)
995997

996998
# catch contract violations
997999
if not isinstance(the_repr, compat.text_type):
@@ -1009,15 +1011,15 @@ def to_string(self, buf=None, na_rep='NaN', float_format=None, header=True,
10091011
f.write(the_repr)
10101012

10111013
def _get_repr(
1012-
self, name=False, header=True, length=True, dtype=True, na_rep='NaN',
1013-
float_format=None, max_rows=None):
1014+
self, name=False, header=True, index=True, length=True, dtype=True,
1015+
na_rep='NaN', float_format=None, max_rows=None):
10141016
"""
10151017
10161018
Internal function, should always return unicode string
10171019
"""
10181020
formatter = fmt.SeriesFormatter(self, name=name,
10191021
length=length, header=header,
1020-
dtype=dtype,
1022+
index=index, dtype=dtype,
10211023
na_rep=na_rep,
10221024
float_format=float_format,
10231025
max_rows=max_rows)

pandas/tests/test_format.py

+10
Original file line numberDiff line numberDiff line change
@@ -3181,6 +3181,16 @@ def test_to_string_float_na_spacing(self):
31813181
'4 NaN')
31823182
self.assertEqual(result, expected)
31833183

3184+
def test_to_string_without_index(self):
3185+
#GH 11729 Test index=False option
3186+
s= Series([1, 2, 3, 4])
3187+
result = s.to_string(index=False)
3188+
expected = (u(' 1\n') +
3189+
' 2\n' +
3190+
' 3\n' +
3191+
' 4')
3192+
self.assertEqual(result, expected)
3193+
31843194
def test_unicode_name_in_footer(self):
31853195
s = Series([1, 2], name=u('\u05e2\u05d1\u05e8\u05d9\u05ea'))
31863196
sf = fmt.SeriesFormatter(s, name=u('\u05e2\u05d1\u05e8\u05d9\u05ea'))

0 commit comments

Comments
 (0)