当前位置: 代码迷 >> 综合 >> Python Pandas DataFrame.to_html使用及设置CSS样式的方法
  详细解决方案

Python Pandas DataFrame.to_html使用及设置CSS样式的方法

热度:5   发布时间:2023-12-15 17:38:01.0

本文主要介绍Python Pandas DataFrame.to_html方法使用示例代码,及使用CSS中class配置html的显示样式。

1、显示数据的示例代码

import pandas as pd
import numpy as np
pd.set_option('display.width', 1000)
pd.set_option('colheader_justify', 'center')
np.random.seed(6182018)
demo_df = pd.DataFrame({'date': np.random.choice(pd.date_range('2018-01-01', '2018-06-18', freq='D'), 50),'analysis_tool': np.random.choice(['pandas', 'r', 'julia', 'sas', 'stata', 'spss'],50),              'database': np.random.choice(['postgres', 'mysql', 'sqlite', 'oracle', 'sql server', 'db2'],50), 'os': np.random.choice(['windows 10', 'ubuntu', 'mac os', 'android', 'ios', 'windows 7', 'debian'],50), 'num1': np.random.randn(50)*100,'num2': np.random.uniform(0,1,50),                   'num3': np.random.randint(100, size=50),'bool': np.random.choice([True, False], 50)},columns=['date', 'analysis_tool', 'num1', 'database', 'num2', 'os', 'num3', 'bool'])print(demo_df.head(10))
#      date    analysis_tool     num1      database     num2        os      num3  bool 
# 0 2018-04-21     pandas     153.474246       mysql  0.658533         ios   74    True
# 1 2018-04-13        sas     199.461669      sqlite  0.656985   windows 7   11   False
# 2 2018-06-09      stata      12.918608      oracle  0.495707     android   25   False
# 3 2018-04-24       spss      88.562111  sql server  0.113580   windows 7   42   False
# 4 2018-05-05       spss     110.231277      oracle  0.660977  windows 10   76    True
# 5 2018-04-05        sas     -68.140295  sql server  0.346894  windows 10    0    True
# 6 2018-05-07      julia      12.874660    postgres  0.195217         ios   79    True
# 7 2018-01-22          r     189.410928       mysql  0.234815  windows 10   56   False
# 8 2018-01-12     pandas    -111.412564  sql server  0.580253      debian   30   False
# 9 2018-04-12          r      38.963967    postgres  0.266604   windows 7   46   False

2、设置使用的CSS样式文件

另存为df_style.css

/* includes alternating gray and white with on-hover color */
.mystyle {font-size: 11pt; font-family: Arial;border-collapse: collapse; border: 1px solid silver;
}
.mystyle td, th {padding: 5px;
}
.mystyle tr:nth-child(even) {background: #E0E0E0;
}
.mystyle tr:hover {background: silver;cursor: pointer;
}

3、DataFrame.to_html()方法使用及设置css样式代码

 

pd.set_option('colheader_justify', 'center')   # FOR TABLE <th>
html_string = '''
<html><head><title>HTML Pandas Dataframe with CSS</title></head><link rel="stylesheet" type="text/css" href="df_style.css"/><body>{table}</body>
</html>.
'''
# OUTPUT AN HTML FILE
with open('myhtml.html', 'w') as f:f.write(html_string.format(table=demo_df.to_html(classes='mystyle')))

4、输出的html及显示效果

引用df_style.css,应该同一目录中;请参阅表中的类参数

<html><head><title>HTML Pandas Dataframe with CSS</title></head><link rel="stylesheet" type="text/css" href="df_style.css"/><body><table border="1" class="dataframe mystyle"><thead><tr style="text-align: center;"><th></th><th>date</th><th>analysis_tool</th><th>num1</th><th>database</th><th>num2</th><th>os</th><th>num3</th><th>bool</th></tr></thead><tbody><tr><th>0</th><td>2018-04-21</td><td>pandas</td><td>153.474246</td><td>mysql</td><td>0.658533</td><td>ios</td><td>74</td><td>True</td></tr><tr><th>1</th><td>2018-04-13</td><td>sas</td><td>199.461669</td><td>sqlite</td><td>0.656985</td><td>windows 7</td><td>11</td><td>False</td></tr><tr><th>2</th><td>2018-06-09</td><td>stata</td><td>12.918608</td><td>oracle</td><td>0.495707</td><td>android</td><td>25</td><td>False</td></tr><tr><th>3</th><td>2018-04-24</td><td>spss</td><td>88.562111</td><td>sql server</td><td>0.113580</td><td>windows 7</td><td>42</td><td>False</td></tr><tr><th>4</th><td>2018-05-05</td><td>spss</td><td>110.231277</td><td>oracle</td><td>0.660977</td><td>windows 10</td><td>76</td><td>True</td></tr>...</tbody>
</table></body>
</html>