Pandas dataframe の列を正規化する方法


多くの場合、pandas DataFrame 内の 1 つ以上の列のデータ値を正規化したい場合があります。

このチュートリアルでは、これを行う 2 つの方法について説明します。

1. 最小値と最大値の正規化

  • 目的:各データ値を 0 から 1 までの値に変換します。
  • 式:新しい値 = (値 – 最小) / (最大 – 最小)

2. 平均の正規化

  • 目的:すべての値の平均が 0 および標準値になるように値をスケーリングします。開発者。は1です。
  • 計算式:新しい値 = (値 – 平均) / (標準偏差)

pandas DataFrame で各メソッドを使用する方法の例を見てみましょう。

例 1: 最小-最大正規化

次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]}) 

#view DataFrame
print (df)

   points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6

次のコードを使用して、DataFrame の各列に最小-最大正規化を適用できます。

 (df-df. min ())/(df. max ()-df. min ())

        points assists rebounds
0 1.000000 0.000000 1.0
1 0.000000 0.285714 0.4
2 0.230769 0.285714 0.8
3 0.153846 0.571429 0.0
4 0.538462 1.000000 0.0

各列の最大値は1になり、各列の最小値は0になり、他のすべての値は 0 から 1 の間になります。

例 2: 平均の正規化

もう一度、次の pandas DataFrame があると仮定してみましょう。

 import pandas as pd

#createDataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19],
                   'assists': [5, 7, 7, 9, 12],
                   'rebounds': [11, 8, 10, 6, 6]}) 

#view DataFrame
print (df)

   points assists rebounds
0 25 5 11
1 12 7 8
2 15 7 10
3 14 9 6
4 19 12 6

次のコードを使用して、DataFrame の各列に平均正規化を適用できます。

 (df- df.mean ())/df. std ()

        points assists rebounds
0 1.554057 -1.133893 1.227881
1 -0.971286 -0.377964 -0.087706
2 -0.388514 -0.377964 0.789352
3 -0.582772 0.377964 -0.964764
4 0.388514 1.511858 -0.964764

各列の値の平均が 0、各列の値の標準偏差が 1 になるように、各列の値が正規化されました。

特定のデータ ポイントの正規化値が 0 より大きい場合、そのデータ ポイントがその列の平均よりも大きいことを示します。逆に、0 未満の正規化値は、データ ポイントがその列の平均を下回っていることを示します。

追加リソース

パンダ: 複数の列をグループ化して集計する方法
複数の条件で Pandas DataFrame をフィルタリングする方法
Pandas DataFrame の欠損値を数える方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です