2015-04-08 63 views
4

我是python和sklearn的新手。我有一个泰坦尼克号数据集的熊猫数据框架。我希望它用于sklearn逻辑预测。将熊猫数据框转换为sklearn的numpy

我尝试以下

data_np = data.astype(np.int32).values 

但不工作。我想利用像'Pclass','年龄','性别'等数据集中的不同功能...

我想转换整个数据,以及单列说数据[“年龄” ]以sklearn numpy格式。任何帮助。

+0

你可以发布你的代码不工作吗,熊猫dfs与sklearn兼容,所以没有必要转换数据,有时你可能需要访问数据作为nunpy数组,这可以使用'.values'完成 – EdChum

+0

也许你想看看'sklearn-pandas'(https://github.com/paulgb/sklearn-pandas),它提供了两个 – joris

+0

之间的桥梁,我将graphlab SFrame转换为熊猫。代码太大了。问题在于,性别类别iam传递到sklearn适合函数,它具有“男性”和“女性”的价值。 –

回答

3

这是一个常见的问题。主要原因是缺乏对numpy的熟悉。

要将数据['Sex']的特征转换为颠簸阵列,请使用以下代码。

from sklearn.preprocessing import LabelEncoder 

enc = LabelEncoder() 
label_encoder = enc.fit(p_train['Sex']) 
print "Categorical classes:", label_encoder.classes_ 
integer_classes = label_encoder.transform(label_encoder.classes_) 
print "Integer classes:", integer_classes 
x_train = label_encoder.transform(p_train['Sex']) 
x_test = label_encoder.transform(p_test['Sex']) 

x_train = x_train[:,np.newaxis] 
x_test = x_test[:,np.newaxis] 

在这里,我们基本上将“男性”和“女性”的分类数据为整数类的0和1这是要领巩膜预计一切是浮动。 np.newaxis用于将x_train的形状从(n_features,)转换为(n_features,1)。否则,在拟合模型时,会出现另一个不兼容形状的错误。

+0

谢谢。它像魅力一样工作。 –

+0

颠簸阵列!大声笑 –

+0

这是熊猫和numpy之间的巨大摩擦。我不明白为什么这不是简化。我在建模和线性代数方面很擅长,但是在这些关于如何提取熊猫数据并以sklearn可以接受的方式进行格式化的细节上浪费了太多时间。 – javadba

相关问题