@@ -412,20 +412,24 @@ def test_to_html_multiindex(self):
412
412
np .mod (range (4 ), 2 )),
413
413
names = ['CL0' , 'CL1' ])
414
414
df = pandas .DataFrame ([list ('abcd' ), list ('efgh' )], columns = columns )
415
- result = df .to_html ()
415
+ result = df .to_html (justify = 'left' )
416
416
expected = ('<table border="1">\n '
417
417
' <thead>\n '
418
418
' <tr>\n '
419
419
' <th><table><tbody><tr><td>CL0</td></tr><tr>'
420
420
'<td>CL1</td></tr></tbody></table></th>\n '
421
- ' <th><table><tbody><tr><td>0</td></tr><tr>'
422
- '<td>0</td></tr></tbody></table></th>\n '
423
- ' <th><table><tbody><tr><td>1</td></tr><tr>'
424
- '<td>1</td></tr></tbody></table></th>\n '
425
- ' <th><table><tbody><tr><td>2</td></tr><tr>'
426
- '<td>0</td></tr></tbody></table></th>\n '
427
- ' <th><table><tbody><tr><td>3</td></tr><tr>'
428
- '<td>1</td></tr></tbody></table></th>\n '
421
+ ' <th><table align="left" style="text-align: left;">'
422
+ '<tbody><tr><td>0</td></tr><tr><td>0</td></tr></tbody>'
423
+ '</table></th>\n '
424
+ ' <th><table align="left" style="text-align: left;">'
425
+ '<tbody><tr><td>1</td></tr><tr><td>1</td></tr></tbody>'
426
+ '</table></th>\n '
427
+ ' <th><table align="left" style="text-align: left;">'
428
+ '<tbody><tr><td>2</td></tr><tr><td>0</td></tr></tbody>'
429
+ '</table></th>\n '
430
+ ' <th><table align="left" style="text-align: left;">'
431
+ '<tbody><tr><td>3</td></tr><tr><td>1</td></tr></tbody>'
432
+ '</table></th>\n '
429
433
' </tr>\n '
430
434
' </thead>\n '
431
435
' <tbody>\n '
@@ -445,24 +449,29 @@ def test_to_html_multiindex(self):
445
449
' </tr>\n '
446
450
' </tbody>\n '
447
451
'</table>' )
452
+
448
453
self .assertEqual (result , expected )
449
454
450
455
columns = pandas .MultiIndex .from_tuples (zip (range (4 ),
451
456
np .mod (range (4 ), 2 )))
452
457
df = pandas .DataFrame ([list ('abcd' ), list ('efgh' )], columns = columns )
453
- result = df .to_html ()
458
+ result = df .to_html (justify = 'right' )
454
459
expected = ('<table border="1">\n '
455
460
' <thead>\n '
456
461
' <tr>\n '
457
462
' <th></th>\n '
458
- ' <th><table><tbody><tr><td>0</td></tr>'
459
- '<tr><td>0</td></tr></tbody></table></th>\n '
460
- ' <th><table><tbody><tr><td>1</td></tr>'
461
- '<tr><td>1</td></tr></tbody></table></th>\n '
462
- ' <th><table><tbody><tr><td>2</td></tr>'
463
- '<tr><td>0</td></tr></tbody></table></th>\n '
464
- ' <th><table><tbody><tr><td>3</td></tr>'
465
- '<tr><td>1</td></tr></tbody></table></th>\n '
463
+ ' <th><table align="right" style="text-align:'
464
+ ' right;"><tbody><tr><td>0</td></tr><tr><td>0</td></tr>'
465
+ '</tbody></table></th>\n '
466
+ ' <th><table align="right" style="text-align:'
467
+ ' right;"><tbody><tr><td>1</td></tr><tr><td>1</td></tr>'
468
+ '</tbody></table></th>\n '
469
+ ' <th><table align="right" style="text-align:'
470
+ ' right;"><tbody><tr><td>2</td></tr><tr><td>0</td></tr>'
471
+ '</tbody></table></th>\n '
472
+ ' <th><table align="right" style="text-align:'
473
+ ' right;"><tbody><tr><td>3</td></tr><tr><td>1</td></tr>'
474
+ '</tbody></table></th>\n '
466
475
' </tr>\n '
467
476
' </thead>\n '
468
477
' <tbody>\n '
@@ -482,8 +491,98 @@ def test_to_html_multiindex(self):
482
491
' </tr>\n '
483
492
' </tbody>\n '
484
493
'</table>' )
494
+
495
+ self .assertEqual (result , expected )
496
+
497
+ def test_to_html_justify (self ):
498
+ df = pandas .DataFrame ({'A' : [6 , 30000 , 2 ],
499
+ 'B' : [1 , 2 , 70000 ],
500
+ 'C' : [223442 , 0 , 1 ]},
501
+ columns = ['A' , 'B' , 'C' ])
502
+ result = df .to_html (justify = 'left' )
503
+ expected = ('<table border="1">\n '
504
+ ' <thead>\n '
505
+ ' <tr style="text-align: left;">\n '
506
+ ' <th></th>\n '
507
+ ' <th>A</th>\n '
508
+ ' <th>B</th>\n '
509
+ ' <th>C</th>\n '
510
+ ' </tr>\n '
511
+ ' </thead>\n '
512
+ ' <tbody>\n '
513
+ ' <tr>\n '
514
+ ' <td><strong>0</strong></td>\n '
515
+ ' <td> 6</td>\n '
516
+ ' <td> 1</td>\n '
517
+ ' <td> 223442</td>\n '
518
+ ' </tr>\n '
519
+ ' <tr>\n '
520
+ ' <td><strong>1</strong></td>\n '
521
+ ' <td> 30000</td>\n '
522
+ ' <td> 2</td>\n '
523
+ ' <td> 0</td>\n '
524
+ ' </tr>\n '
525
+ ' <tr>\n '
526
+ ' <td><strong>2</strong></td>\n '
527
+ ' <td> 2</td>\n '
528
+ ' <td> 70000</td>\n '
529
+ ' <td> 1</td>\n '
530
+ ' </tr>\n '
531
+ ' </tbody>\n '
532
+ '</table>' )
533
+
534
+ self .assertEqual (result , expected )
535
+
536
+ result = df .to_html (justify = 'right' )
537
+ expected = ('<table border="1">\n '
538
+ ' <thead>\n '
539
+ ' <tr style="text-align: right;">\n '
540
+ ' <th></th>\n '
541
+ ' <th>A</th>\n '
542
+ ' <th>B</th>\n '
543
+ ' <th>C</th>\n '
544
+ ' </tr>\n '
545
+ ' </thead>\n '
546
+ ' <tbody>\n '
547
+ ' <tr>\n '
548
+ ' <td><strong>0</strong></td>\n '
549
+ ' <td> 6</td>\n '
550
+ ' <td> 1</td>\n '
551
+ ' <td> 223442</td>\n '
552
+ ' </tr>\n '
553
+ ' <tr>\n '
554
+ ' <td><strong>1</strong></td>\n '
555
+ ' <td> 30000</td>\n '
556
+ ' <td> 2</td>\n '
557
+ ' <td> 0</td>\n '
558
+ ' </tr>\n '
559
+ ' <tr>\n '
560
+ ' <td><strong>2</strong></td>\n '
561
+ ' <td> 2</td>\n '
562
+ ' <td> 70000</td>\n '
563
+ ' <td> 1</td>\n '
564
+ ' </tr>\n '
565
+ ' </tbody>\n '
566
+ '</table>' )
485
567
self .assertEqual (result , expected )
486
568
569
+ def test_to_html_index (self ):
570
+ index = ['foo' , 'bar' , 'baz' ]
571
+ df = pandas .DataFrame ({'A' : [1 , 2 , 3 ],
572
+ 'B' : [1.2 , 3.4 , 5.6 ],
573
+ 'C' : ['one' , 'two' , np .NaN ]},
574
+ columns = ['A' , 'B' , 'C' ],
575
+ index = index )
576
+ result = df .to_html (index = False )
577
+ for i in index :
578
+ self .assert_ (i not in result )
579
+
580
+ tuples = [('foo' , 'car' ), ('foo' , 'bike' ), ('bar' ,'car' )]
581
+ df .index = pandas .MultiIndex .from_tuples (tuples )
582
+ result = df .to_html (index = False )
583
+ for i in ['foo' , 'bar' , 'car' , 'bike' ]:
584
+ self .assert_ (i not in result )
585
+
487
586
def test_repr_html (self ):
488
587
self .frame ._repr_html_ ()
489
588
0 commit comments