首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >学习:用ColumnTransformer链接多台变压器

学习:用ColumnTransformer链接多台变压器
EN

Stack Overflow用户
提问于 2020-10-28 07:49:33
回答 1查看 712关注 0票数 1

如何使用DataFrame API将多台变压器应用于单个熊猫ColumnTransformer列?

例如,我想取立方根,然后标准化DataFrame列中的值:

代码语言:javascript
复制
df = pd.DataFrame(
  np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]),
  columns=['a', 'b', 'c']
)
transformer = ColumnTransformer(
  [
    ('root3_std', StandardScaler() + FunctionTransformer(np.cbrt), 'a') <-- pseudocode
  ],
  remainder='passthrough'
)

如果我写

代码语言:javascript
复制
transformer = ColumnTransformer(
  [
    ('root3', FunctionTransformer(np.cbrt), 'a'),
    ('standardize', StandardScaler(), 'a')
  ],
  remainder='passthrough'
)

我得到两个独立的列,一个具有立方根,另一个具有标准化的原始值。如何将变压器一举应用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-28 09:42:22

代码语言:javascript
复制
from sklearn.pipeline import Pipeline
import pandas as pd
import numpy as np
from sklearn.preprocessing import FunctionTransformer, StandardScaler

df = pd.DataFrame(
np.array([[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]),
columns=['a', 'b', 'c']
)


pipe = Pipeline([('function_transformer', FunctionTransformer(np.cbrt)), 
                 ('standard_scalar', StandardScaler())])

pipe.fit_transform(df[['a']])

#op
array([[-1.32381804],
   [ 0.23106179],
   [ 1.09275626]])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64568504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档