Python学习和分类数据

Python学习和分类数据,python,pandas,scikit-learn,sklearn-pandas,one-hot-encoding,Python,Pandas,Scikit Learn,Sklearn Pandas,One Hot Encoding,我正在研究csv的多变量回归,基于多个因素预测作物表现。我的一些专栏是数字和有意义的。还有一些是数字和分类的,或者是字符串和分类的(例如,作物品种、绘图代码等等)。我该如何教Python使用它们呢?我发现了一个热门的编码器(),但不知道如何在这里应用它 到目前为止,我的代码是: import pandas as pd import statsmodels.api as sm from sklearn.preprocessing import StandardScaler df = pd.read

我正在研究csv的多变量回归,基于多个因素预测作物表现。我的一些专栏是数字和有意义的。还有一些是数字和分类的,或者是字符串和分类的(例如,作物品种、绘图代码等等)。我该如何教Python使用它们呢?我发现了一个热门的编码器(),但不知道如何在这里应用它

到目前为止,我的代码是:

import pandas as pd
import statsmodels.api as sm
from sklearn.preprocessing import StandardScaler
df = pd.read_csv('filepath.csv')

df.drop(df[df['LabeledDataColumn'].isnull()].index.tolist(),inplace=True)

scale = StandardScaler()

pd.options.mode.chained_assignment = None  # default='warn'
X = df[['inputColumn1', 'inputColumn2', ...,'inputColumn20']]
y = df['LabeledDataColumn']

X[['inputColumn1', 'inputColumn2', ...,'inputColumn20']] = scale.fit_transform(X[['inputColumn1', 'inputColumn2', ...,'inputColumn20']].as_matrix())

#print (X)

est = sm.OLS(y, X).fit()

est.summary()

您可以使用pandas提供的get_dummies函数来转换分类值

像这样的

predictor = pd.concat([data.get(['numerical_column_1','numerical_column_2','label']),
                           pd.get_dummies(data['categorical_column1'], prefix='Categorical_col1'),
                           pd.get_dummies(data['categorical_column2'], prefix='categorical_col2'),
                          axis=1)
然后,您可以通过执行以下操作获得结果/标签列

outcome = predictor['label']
del predictor['label']
然后调用模型对数据进行处理

est = sm.OLS(outcome, predictor).fit()

对于分类数据,应该尝试scikit learn的标签编码器()@KevinK。谢谢如果你不介意我问的话,我将如何将它应用到这个例子中?创建一个新的标签编码器
le=LabelEncoder()
,将它与你的数据
le.fit(df['SomeColumn'])
和转换你的数据
df['SomeColumn']=le.transform(df['SomeColumn'])
类似的东西怎么样pd.factorize(df.featureX)transformed_featureX=pd.factorize(df.featureX)df['transformed_featureX']=transformed_featureX[0].astype(float)#或任何可以是int的东西。'well..get_dummies()更容易。请尝试一下,让我知道,如果您认为它有效,请向上投票。它引发了一个错误:文件“”,第13行轴=1])^SyntaxError:无效Syntax可以尝试调试它,如果您可以在问题中粘贴一些示例数据