【发布时间】:2021-01-05 08:50:57
【问题描述】:
我想标准化我的 pandas 数据框中的值,并保持一列值相同,所以我使用了ColumnTransformer。但是,该函数似乎没有通过我希望它通过的列。 df 是我的数据框,代码如下:
import pandas as pd
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import StandardScaler
physical_vars = ["DPhill", "DYjj", "mjj", "mll", "mT", "ptTot", "sumOfCentralitiesL", "mL1J1", "mL1J2", "mL2J1", "mL2J2", "ptJ1", "ptJ2", "ptJ3", "METSig"]
other_vars = ["eventNumber", "weight"]
full_var_list = other_vars + physical_vars
ct = ColumnTransformer([('Standardizer', StandardScaler(), full_var_list)],'passthrough')
col_names=full_var_list
col_names.append("ProcessID")
tmp_df=df[col_names]
standardized_values=ct.fit_transform(tmp_df) #np_array
df=pd.DataFrame(standardized_values,columns=full_var_list)
我想传递“ProcessID”列,但是当我打印出该列时,值是标准化的。
【问题讨论】:
标签: python pandas dataframe scikit-learn data-science