首页 > 解决方案 > 缩放熊猫系列

问题描述

我正在对 DataFrame 进行计算,然后想要缩放结果。我不断收到关于期望二维数组和“如果您的数据具有单一特征,则使用 array.reshape(-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 具有完整的原始索引和单列缩放结果。

标签: pythonpandasdataframe

解决方案


如果是一维的,就需要reshape一下。为了避免来回转换,可以这样做(或许有更好的解决方案):

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

推荐阅读