【发布时间】:2017-01-24 12:50:18
【问题描述】:
我有一个如下的数据集
import pandas as pd
import sklearn
df= pd.DataFrame({'color': ['red', 'red,blue','red,blue,yellow', 'red,yellow', 'blue,yellow']})
我得到一个像这样的新变量
df['red'] = 0
df.ix[df['color'].str.contains("red") == True, 'red' ] =1
同样我可以得到df['blue'] & df['yellow']
然后我不得不在class 中使用它(我想申请pipeline)
class Red():
def transform(self, X, y=None, **fit_params):
X['red'] = 0
X.loc[X['color'].str.contains("red") == True, 'red' ] = 1
return X['red'].values.reshape(len(X),1)
def fit_transform(self, X, y=None, **fit_params):
self.fit(X, y, **fit_params)
return self.transform(X)
def fit(self, X, y=None, **fit_params):
return self
它有效,但我想得到class,它也会生成'blue' & 'yellow'。为每种“颜色”上课?在真实的数据集中有几十种“颜色”。
我是新手,请告诉我如何在一个class 中组合生成多个变量
【问题讨论】:
标签: python function python-3.x class