見出し画像

セルの背景に色をつける(Python Pandas)

データフレームの背景に色をつけられるのが意外と便利で最近よく使っています。

以前、特定の文字列を含む行を抽出するという記事を書きましたが、実際は特定の文字列を含む行を抽出し、特定の文字列を含むセルの背景に色をつけて使っています。

import pandas as pd

data = {
    '仕入先': ['商店A', '商店C', '商店C', '商店A', '商店C', '商店A', '商店A', '商店B'],
    '果物': ['りんご', 'バナナ', 'みかんA', 'いちご', 'ぶどう', 'みかん', 'いちご', 'すいか'],
    '価格': [130, 200, 70, 600, 250, 300, 200, 150]
}

# データフレームを作成
df = pd.DataFrame(data)

#文字列’か’を含む行を抽出
df_in = df[df.applymap(lambda x: 'か' in str(x)).any(axis=1)]

#文字列'か'を含むセルの背景を黄色にする
styler = df_in.style.applymap(lambda x: 'background-color: yellow' if 'か' in str(x) else '')

styler

styleというメソッドを使うとこのように背景に色をつけられます。
当然ですが、色付けするデータフレームはなんでもよく抽出する前のデータフレームでも全く問題ありません。

styler = df.style.applymap(lambda x: 'background-color: yellow' if 'か' in str(x) else '')

styler

私はこの手の作業は、jupyter notebook や streamlit を使っているのですが、どちらも問題なく背景に色がつきました。

さらにこれが便利なのは、excelに出力したときも背景色が反映するというところです。
excelに出力してみます。

#excelに書き出し
styler.to_excel('保存先のパス/ファイル名.xlsx')

excel上でもしっかり反映されています。
styleについては下のサイトがわかりやすかったのでご参考までに。



この記事が気に入ったらサポートをしてみませんか?