@@ -561,3 +561,42 @@ def test_to_csv_compression(self, compression_only,
561
561
result = pd .read_csv (path , index_col = 0 ,
562
562
compression = read_compression )
563
563
tm .assert_frame_equal (result , df )
564
+
565
+ @pytest .mark .parametrize ("header, index_label, expected_rows" , [
566
+ (False , True , ['index.name,,' , '0,0,0' , '1,0,0' ]),
567
+ (True , True , ['index.name,A,B' , '0,0,0' , '1,0,0' ]),
568
+ (False , False , ['0,0,0' , '1,0,0' ]),
569
+ (True , False , [',A,B' , '0,0,0' , '1,0,0' ]),
570
+ (False , None , ['0,0,0' , '1,0,0' ]),
571
+ (True , None , ['index.name,A,B' , '0,0,0' , '1,0,0' ])
572
+ ])
573
+ def test_to_csv_header_single_index (self , header , index_label ,
574
+ expected_rows ):
575
+ # issue 24546
576
+ df = pd .DataFrame (np .zeros ((2 , 2 ), dtype = int ))
577
+ df .index .name = 'index.name'
578
+ df .columns = ['A' , 'B' ]
579
+
580
+ result = df .to_csv (header = header , index_label = index_label )
581
+ expected = tm .convert_rows_list_to_csv_str (expected_rows )
582
+ assert result == expected
583
+
584
+ @pytest .mark .parametrize ("header, index_label, expected_rows" , [
585
+ (False , True , ['index.name.0,index.name.1,,' , 'a,b,0,0' , 'a,c,0,0' ]),
586
+ (True , True , ['index.name.0,index.name.1,A,B' , 'a,b,0,0' , 'a,c,0,0' ]),
587
+ (False , False , ['a,b,0,0' , 'a,c,0,0' ]),
588
+ (True , False , [',,A,B' , 'a,b,0,0' , 'a,c,0,0' ]),
589
+ (False , None , ['a,b,0,0' , 'a,c,0,0' ]),
590
+ (True , None , ['index.name.0,index.name.1,A,B' , 'a,b,0,0' , 'a,c,0,0' ])
591
+ ])
592
+ def test_to_csv_header_multi_index (self , header , index_label ,
593
+ expected_rows ):
594
+ # issue 24546
595
+ df = pd .DataFrame (np .zeros ((2 , 2 ), dtype = int ))
596
+ df .columns = ['A' , 'B' ]
597
+ df .index = pd .MultiIndex .from_product ([['a' ], ['b' , 'c' ]], names = [
598
+ 'index.name.0' , 'index.name.1' ])
599
+
600
+ result = df .to_csv (header = header , index_label = index_label )
601
+ expected = tm .convert_rows_list_to_csv_str (expected_rows )
602
+ assert result == expected
0 commit comments