Python – Pandas to_htmlを使用してすべての列に同じHTML背景色を適用する方法

okwaves2024-01-25  6

識別子データに基づいて、同じ行のすべてのセルに同じ背景色を適用しようとしています。

例:

行全体を同じ色にするにはどうすればよいですか?現時点では日付列のみに色が付いています。

私は df.to_html() を使用してから sed を使用しています。

sed -i 's@<td>2020-08-31<\/td>@<td bgcolor="grey">2020-08-31<\/td>@g' <file>
sed -i 's@<td>2020-09-01<\/td>@<td bgcolor="#F49884">2020-09-01<\/td>@g' <file>

sed/awk または Python を使用することに抵抗はありません。

ここではテーブルの表示方法を定義しています。これに CSS が使用されます。デフォルトでは、pandas によって生成された html テーブルには、CSS sel で使用できるクラス データフレームが割り当てられます。ector (必要に応じて to_html() パラメータを使用してインスタンスをさらにカスタマイズできます)。 HTML ページにインラインまたは外部の CSS セクションを追加できる場合 (table.dataframe td {background-color: red } のようなルールを使用)、マークアップを変更する代わりに追加することをお勧めします (特にツールは HTML の複雑な構造を解析するように設計されていません)。

– luciole75w

2020 年 9 月 4 日 23:38



------------------------

Python では .replace() を使用してこれを行うことができます。

Pandas to_html() は、データフレームを表す HTML 文字列を返すだけです。その後、結果の文字列に対して任意の Python 文字列操作を使用できます。

たとえば:

def add_bg_color(html, identifier):
    return html.replace(
        f"<td>{identifier}<\/td>", 
        f"<td background-color='grey'>{identifier}<\/td>"
    )

次のように使用します:

html = df.to_html()
add_bg_color(html, '2020-08-31')

また、bgcolor を適切な CSS プロパティ名である background-color に変更したことに注意してください。

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。