我有一个大型的pandas数据框,大约有80列。数据框中的80列中的每一列都报告网站的每日流量统计信息(列是网站)。
由于我不想使用原始流量统计信息,我更喜欢规范化所有列(第一列除外,即日期)。从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 ...
话虽如此,我想知道适用哪种规范化。 Min-Max scaling与z-Score标准化(标准化)?我的一些专栏有很强的异常值。有一个例子会很棒。很抱歉无法提供完整的数据。
答案 0 :(得分:15)
首先,将Date列转换为索引。
dates = df.pop('Date')
df.index = dates
然后使用z-score normalizing:
df1 = (df - df.mean())/df.std()
或最小 - 最大缩放:
df2 = (df-df.min())/(df.max()-df.min())
我可能会建议z-score归一化,因为min-max缩放非常容易受到异常值的影响。