0
我有一些csv文件形式的數據,我正在讀入Python並使用Pandas轉換爲HTML表格。Python有條件地將類添加到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 class =「custom」給名爲A的單元格col2和名爲C的單元格col1。在CSS中,我將填充單元格顏色爲紅色if它有「自定義」類。
結果會是這樣的:
<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>
如何使用這個美麗的湯可以實現嗎?
在我的情況下,df.to_html()返回一個類型unicode,因爲我的df是一個數據框。然後我不能使用美麗的湯功能中的「html.parser」。我上面提到的標準是,如果該值小於該行的閾值列中的值,則添加「自定義」類,否則不做任何操作並繼續下一個。 – brno792
通過unicode的問題是什麼? –
使用BeautifulSoup(html,「html.parser」)時出現錯誤:AttributeError:'str'對象沒有屬性'text'。在我的情況下,html是unicode類型,它來自:html = pd.read_csv(「data.csv」)。to_html(index = False) – brno792