缩放熊猫系列



我正在DataFrame上进行计算,然后想缩放结果。我不断地得到关于期望2D阵列的错误;使用array.reform(-1,1((如果您的数据具有单个特征(来重塑您的数据;

import pandas as pd
df = pd.DataFrame({'a': ['aaa', 'bbb', 'ccc'],
'b': [1, 2, 3],
'c': [4, 5, 6],
'd': [7, 8, 9]})
df.set_index('a', inplace=True)
series = df[['b', 'c']].sum(axis=1).div(df[['b', 'd']].sum(axis=1), axis=0)
scaler = StandardScaler()
series.values = scaler.fit_transform(series.values) 

我期望得到一个原始索引完整的DataFrame或Series,以及一列缩放后的结果。

如果它是一维的,你需要重塑它。为了避免来回转换,你可以这样做(也许有更好的解决方案(:

series = pd.DataFrame({'values':series})
values
a   
aaa 0.625
bbb 0.700
ccc 0.750
series['values'] = scaler.fit_transform(series[['values']])
values
a   
aaa -1.297771
bbb 0.162221
ccc 1.135550

最新更新