diff --git a/pandas/io/parsers.py b/pandas/io/parsers.py index bd0649a7a85f3..7004bcaf0cb74 100644 --- a/pandas/io/parsers.py +++ b/pandas/io/parsers.py @@ -972,7 +972,7 @@ def __init__(self, src, **kwds): if self.names is None: if self.prefix: - self.names = ['X%d' % i + self.names = ['%s%d' % (self.prefix, i) for i in range(self._reader.table_width)] else: self.names = lrange(self._reader.table_width) @@ -1563,7 +1563,7 @@ def _infer_columns(self): num_original_columns = ncols if not names: if self.prefix: - columns = [['X%d' % i for i in range(ncols)]] + columns = [['%s%d' % (self.prefix,i) for i in range(ncols)]] else: columns = [lrange(ncols)] columns = self._handle_usecols(columns, columns[0]) diff --git a/pandas/io/tests/test_parsers.py b/pandas/io/tests/test_parsers.py index 93a26b70a019e..4fe95647bae28 100644 --- a/pandas/io/tests/test_parsers.py +++ b/pandas/io/tests/test_parsers.py @@ -968,6 +968,22 @@ def test_no_header(self): self.assert_(np.array_equal(df2.columns, names)) + def test_no_header_prefix(self): + data = """1,2,3,4,5 +6,7,8,9,10 +11,12,13,14,15 +""" + df_pref = self.read_table(StringIO(data), sep=',', prefix='Field', + header=None) + + expected = [[1, 2, 3, 4, 5.], + [6, 7, 8, 9, 10], + [11, 12, 13, 14, 15]] + tm.assert_almost_equal(df_pref.values, expected) + + self.assert_(np.array_equal(df_pref.columns, + ['Field0', 'Field1', 'Field2', 'Field3', 'Field4'])) + def test_header_with_index_col(self): data = """foo,1,2,3 bar,4,5,6