Skip to content

Commit 4b2ceeb

Browse files
committed
BUG: Fix csv_read bug with reversed index_col list.
1 parent 0eb1587 commit 4b2ceeb

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

pandas/io/parsers.py

+1
Original file line numberDiff line numberDiff line change
@@ -2228,6 +2228,7 @@ def _get_empty_meta(columns, index_col, index_names):
22282228
else:
22292229
index_col = list(index_col)
22302230
index = MultiIndex.from_arrays([[]] * len(index_col), names=index_names)
2231+
index_col.sort()
22312232
for i, n in enumerate(index_col):
22322233
columns.pop(n-i)
22332234

pandas/io/tests/test_parsers.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -2305,7 +2305,15 @@ def test_emtpy_with_multiindex(self):
23052305
# GH 10467
23062306
data = 'x,y,z'
23072307
result = self.read_csv(StringIO(data), index_col=['x', 'y'])
2308-
expected = DataFrame([], columns=['z'], index=MultiIndex.from_arrays([[]] * 2, names=['x', 'y']))
2308+
expected = DataFrame([], columns=['z'],
2309+
index=MultiIndex.from_arrays([[]] * 2, names=['x', 'y']))
2310+
tm.assert_frame_equal(result, expected)
2311+
2312+
def test_empty_with_reversed_multiindex(self):
2313+
data = 'x,y,z'
2314+
result = self.read_csv(StringIO(data), index_col=[1, 0])
2315+
expected = DataFrame([], columns=['z'],
2316+
index=MultiIndex.from_arrays([[]] * 2, names=['y', 'x']))
23092317
tm.assert_frame_equal(result, expected)
23102318

23112319
def test_empty_with_index_col_false(self):

0 commit comments

Comments
 (0)