Python 将Pandas Dataframe转换为sklearn的numpy
我对python和sklearn还不熟悉。我有一个泰坦尼克号数据集的熊猫数据框架。我想把它用于逻辑预测 我尝试了以下方法Python 将Pandas Dataframe转换为sklearn的numpy,python,numpy,pandas,scikit-learn,Python,Numpy,Pandas,Scikit Learn,我对python和sklearn还不熟悉。我有一个泰坦尼克号数据集的熊猫数据框架。我想把它用于逻辑预测 我尝试了以下方法 data_np = data.astype(np.int32).values 但不起作用。我想利用数据集中的不同功能,如“Pclass”、“Age”、“Sex”等 我想将整个数据以及单个列(比如data[“Age”])转换为sklearn numpy格式。任何帮助。< P>处理你的数值和非数值数据,考虑使用,允许你 使用0到n_class-1之间的值对标签进行编码 另见:
data_np = data.astype(np.int32).values
但不起作用。我想利用数据集中的不同功能,如“Pclass”、“Age”、“Sex”等
我想将整个数据以及单个列(比如data[“Age”])转换为sklearn numpy格式。任何帮助。< P>处理你的数值和非数值数据,考虑使用,允许你
使用0到n_class-1之间的值对标签进行编码
另见:
分类变量,如“性别”和“性别”,需要进行热编码,才能在
逻辑回归模型中使用它们。有了熊猫,你可以使用get_dummies(data['Sex'])
这里有一个完整的教程专门介绍了同一数据集上的此问题:
这是一个常见的问题。主要原因是对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_序列的形状从(n_特征,)转换为(n_特征,1)。否则,在拟合模型时,您将出现另一个形状不兼容的错误。能否发布不起作用的代码,因为dfs与sklearn兼容,因此无需转换数据,有时您可能需要将数据作为nunpy数组进行访问,这可以通过使用来完成。值也许您想看看sklearn pandas
(),它提供了将graphlab SFrame转换为pandas之间的桥梁。代码太大了。问题是,在我传递给sklearn fit函数的性别类别中,它有“男性”和“女性”值。我得到以下错误。。。。返回数组(a,dtype,copy=False,order=order)值错误:无法将字符串转换为浮点值:malesklearn通常期望值为浮点值,因此您不能将字符串作为值传递,因此必须将字符串转换为数值,例如0
和1
这是pandas和numpy之间的一大摩擦。我不明白这为什么没有简化。我擅长建模和线性代数,但在这些细节上浪费了太多时间,这些细节是关于如何提取熊猫数据,并以sklearn可以接受的方式格式化数据。