パンダの条件付き書式

Zeeshan Afridi 2023年6月21日
  1. パンダの条件付き書式
  2. Pandas の条件付き書式を使用する
  3. style 属性を使用した条件付き書式
  4. まとめ
パンダの条件付き書式

特定の値を含む列内のすべてのセル、または特定のしきい値を超える行内のすべてのセルを強調表示することができます。 条件付き書式は、データのエラーや異常値をすばやく特定することもできます。

この記事では、Pandas の条件付き書式について説明します。

パンダの条件付き書式

Pandas 条件付き書式は、条件に基づいて dataframe 列を書式設定できる強力なツールです。 たとえば、条件付き書式を使用して、列内の特定の値より大きいすべてのセルを強調表示したり、特定のテキスト文字列が含まれているかどうかに基づいてセルを書式設定したりすることができます。

pandas 条件付き書式を使用して dataframe 列を書式設定するには、いくつかの方法があります。 1つの方法は、style 関数を使用することです。 この関数は、条件とフォーマットの辞書を取り、それらのフォーマットを dataframe に適用します。

パンダの条件付き書式を使用するもう 1つの方法は、apply 関数です。 この関数を使用すると、条件に基づいて列内のすべてのセルに関数を適用できます。

Pandas の条件付き書式を使用する

round() 関数を使用して、数値を含むセルを条件付きでフォーマットできます。

df.round(2)

これにより、データ フレーム内のすべての数値が小数点以下 2 桁に丸められます。 format() 関数を使用して、テキスト値を含むセルを条件付きでフォーマットすることもできます。

df.format("%s")

これにより、データ フレーム内のすべてのテキスト値が文字列としてフォーマットされます。 apply() 関数を利用して、カスタム条件に基づいてセルを条件付きでフォーマットすることもできます。

df.apply(lambda x: x.str.upper() if x.name == "column1" else x)

これにより、すべての値が column1 列の大文字テキストとして書式設定されます。

style 属性を使用した条件付き書式

条件に基づいて pandas セルをフォーマットする方法はいくつかあります。 最も一般的な方法は、style 属性を使用することです。

これは、セルの style 属性を CSS プロパティの辞書に設定することで実現できます。 ディクショナリのキーは CSS プロパティの名前にする必要があり、値はそれらのプロパティに設定する値にする必要があります。

import pandas as pd

df = pd.DataFrame([[2, 3, 1], [3, 2, 2], [2, 4, 4]], columns=list("ABC"))
df.style.apply(
    lambda x: ["background: red" if v > x.iloc[0] else "" for v in x], axis=1
)

出力:

スタイル属性を使用した条件付き書式設定

applymap() メソッドを使用した条件付き書式

applymap() メソッドを利用して、データ フレーム内のすべてのセルをフォーマットすることもできます。 このメソッドは関数を引数として取り、その関数をデータ フレーム内のすべてのセルに適用します。

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(4, 3))
df.style.applymap(lambda x: "background-color : yellow" if x > df.iloc[0, 0] else "")

出力:

applymap 属性を使用した条件付き書式設定

セルをどのように書式設定する場合でも、データが読みやすく理解しやすい方法で行うようにしてください。

まとめ

結論として、条件付きでその値に基づいて Python pandas セルをフォーマットすることが可能です。 CSS スタイルのプロパティと値の辞書を取る組み込みの style 関数を使用できます。

設定する最も重要なプロパティは background-color プロパティで、16 進コードまたは名前付きの色に設定できます。 設定できるその他のプロパティには、color (テキストの色)、font-weight (テキストの太さ)、および text-align (テキストの水平方向の配置) があります。

著者: Zeeshan Afridi
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

関連記事 - Pandas DataFrame