【发布时间】:2016-09-21 01:51:50
【问题描述】:
我有一些 csv 文件形式的数据,我正在将其读入 Python 并使用 Pandas 转换为 HTML 表格。
这里有一些示例数据:
name threshold col1 col2 col3
A 10 12 9 13
B 15 18 17 23
C 20 19 22 25
还有一些代码:
import pandas as pd
df = pd.read_csv("data.csv")
table = df.to_html(index=False)
这将创建以下 HTML:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th>name</th>
<th>threshold</th>
<th>col1</th>
<th>col2</th>
<th>col3</th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td>10</td>
<td>12</td>
<td>9</td>
<td>13</td>
</tr>
<tr>
<td>B</td>
<td>15</td>
<td>18</td>
<td>17</td>
<td>23</td>
</tr>
<tr>
<td>C</td>
<td>20</td>
<td>19</td>
<td>22</td>
<td>25</td>
</tr>
</tbody>
</table>
不,如果值小于某个阈值,我想有条件地向 html 表中的每个单元格添加一个类。表中每一行的阈值都不同。
因此,鉴于上面的示例数据,我想将一个类 class="custom" 添加到名称为 A 的单元格 col2 和名称为 C 的单元格 col1 中。在 CSS 中,我会将单元格颜色填充为红色有“自定义”类。
结果会是这样的:
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th>name</th>
<th>threshold</th>
<th>col1</th>
<th>col2</th>
<th>col3</th>
</tr>
</thead>
<tbody>
<tr>
<td>A</td>
<td>10</td>
<td>12</td>
<td class="custom">9</td>
<td>13</td>
</tr>
<tr>
<td>B</td>
<td>15</td>
<td>18</td>
<td>17</td>
<td>23</td>
</tr>
<tr>
<td>C</td>
<td>20</td>
<td class="custom">19</td>
<td>22</td>
<td>25</td>
</tr>
</tbody>
</table>
如何使用 Beautiful Soup 实现这一目标?
【问题讨论】:
标签: python html pandas beautifulsoup