@@ -174,7 +174,8 @@ def check_error_on_write(self, df, engine, exc):
174
174
to_parquet (df , path , engine , compression = None )
175
175
176
176
def check_round_trip (self , df , engine , expected = None ,
177
- write_kwargs = None , read_kwargs = None ):
177
+ write_kwargs = None , read_kwargs = None ,
178
+ check_names = True ):
178
179
if write_kwargs is None :
179
180
write_kwargs = {}
180
181
if read_kwargs is None :
@@ -185,15 +186,15 @@ def check_round_trip(self, df, engine, expected=None,
185
186
186
187
if expected is None :
187
188
expected = df
188
- tm .assert_frame_equal (result , expected )
189
+ tm .assert_frame_equal (result , expected , check_names = check_names )
189
190
190
191
# repeat
191
192
to_parquet (df , path , engine , ** write_kwargs )
192
193
result = pd .read_parquet (path , engine , ** read_kwargs )
193
194
194
195
if expected is None :
195
196
expected = df
196
- tm .assert_frame_equal (result , expected )
197
+ tm .assert_frame_equal (result , expected , check_names = check_names )
197
198
198
199
199
200
class TestBasic (Base ):
@@ -256,25 +257,40 @@ def test_read_columns(self, engine):
256
257
read_kwargs = {'columns' : ['string' ]})
257
258
258
259
def test_write_with_index (self , engine ):
260
+ check_names = engine != 'fastparquet'
261
+
259
262
df = pd .DataFrame ({'A' : [1 , 2 , 3 ]})
260
263
self .check_round_trip (df , engine , write_kwargs = {'compression' : None })
261
264
265
+ indexes = [
266
+ [2 , 3 , 4 ],
267
+ pd .date_range ('20130101' , periods = 3 ),
268
+ list ('abc' ),
269
+ [1 , 3 , 4 ],
270
+ ]
262
271
# non-default index
263
- for index in [[2 , 3 , 4 ],
264
- pd .date_range ('20130101' , periods = 3 ),
265
- list ('abc' ),
266
- [1 , 3 , 4 ],
267
- pd .MultiIndex .from_tuples ([('a' , 1 ), ('a' , 2 ),
268
- ('b' , 1 )]),
269
- ]:
270
-
272
+ for index in indexes :
271
273
df .index = index
272
- self .check_round_trip (df , engine , write_kwargs = {'compression' : None })
273
-
274
+ self .check_round_trip (
275
+ df , engine ,
276
+ write_kwargs = {'compression' : None },
277
+ check_names = check_names ,
278
+ )
279
+ if engine != 'fastparquet' :
280
+ # Not suppoprted in fastparquet as of 0.1.3
281
+ index = pd .MultiIndex .from_tuples ([('a' , 1 ), ('a' , 2 ), ('b' , 1 )])
282
+ df .index = index
283
+ self .check_round_trip (
284
+ df , engine ,
285
+ write_kwargs = {'compression' : None },
286
+ )
274
287
# index with meta-data
275
288
df .index = [0 , 1 , 2 ]
276
289
df .index .name = 'foo'
277
- self .check_round_trip (df , engine , write_kwargs = {'compression' : None })
290
+ self .check_round_trip (
291
+ df , engine ,
292
+ write_kwargs = {'compression' : None }
293
+ )
278
294
279
295
# column multi-index
280
296
df .index = [0 , 1 , 2 ]
0 commit comments