pandas約80列のデータフレームがあります。データフレームの80列のそれぞれがWebサイトの毎日のトラフィック統計を報告します(列はWebサイトです)。
生のトラフィック統計を処理したくないので、すべての列を正規化したいと思います(最初の日付を除く)。 0から1または(さらに)0から100のいずれか。
Date A B ...
10/10/2010 100.0 402.0 ...
11/10/2010 250.0 800.0 ...
12/10/2010 800.0 2000.0 ...
13/10/2010 400.0 1800.0 ...
とはいえ、どの正規化を適用すればよいのでしょうか。 最小-最大スケーリング 対z-スコア正規化(標準化)?一部の列には強い外れ値があります。例があるといいですね。完全なデータを提供できず、申し訳ありません。
まず、Date列をインデックスに変換します。
dates = df.pop('Date')
df.index = dates
次に、Zスコアの正規化を使用します。
df1 = (df - df.mean())/df.std()
または最小-最大スケーリング:
df2 = (df-df.min())/(df.max()-df.min())
Min-maxスケーリングは外れ値の影響を非常に受けやすいため、zスコアの正規化をおそらくお勧めします。