通过Python

时间:2016-04-13 04:51:14

标签: python machine-learning

如果我有一个包含5列10行(因此有10个观察值)的数据集,我希望X是10 x 4输入矩阵,表示前4列,y是10 x 1输出矩阵,表示我的数据集中的最后一列,我将如何在python上编码?  我希望我的X矩阵包含列:cty_pop2000,countyfipscode,county_name和statename。虽然我希望我的y输出向量是gini列。我将如何在Python上编写代码?抱歉如果这个问题很简单,我是Python的新手。 我试过sklearn但他们使用简单的数组作为他们的X输入和y输出。因此,我不知道如何编码我的X矩阵和y矢量

我尝试使用以下代码进行编码:

import pandas as pd

df = pd.read_csv('file_name.csv')
X  =  df.iloc[[0:3]]    
y  =  df['gini']   

数据集是一个csv文件,其中包含以下内容:

cty_pop2000 countyfipscode  county_name statename   gini
43671   1001    Autauga Alabama 0.381
43671   1001    Autauga Alabama 0.381
43671   1001    Autauga Alabama 0.381
43671   1001    Autauga Alabama 0.381
43671   1001    Autauga Alabama 0.381
43671   1001    Autauga Alabama 0.381
43671   1001    Autauga Alabama 0.381
43671   1001    Autauga Alabama 0.381
43671   1001    Autauga Alabama 0.381

1 个答案:

答案 0 :(得分:0)

您可以将最后一列复制到矢量并将其从原始数据帧中删除。

import pandas as pd

df = pd.read_csv('file_name.csv')
y  =  df[['gini']] 
X  =  df.drop(['gini'])

或者您可以简单地切出'gini'列而不会丢弃

import pandas as pd

df = pd.read_csv('file_name.csv')
y  =  df[['gini']] 
X  =  df[df.columns.difference(['gini'])]

您还可以使用列索引切片列:

import pandas as pd

df = pd.read_csv('file_name.csv')
y  =  df[[-1]] 
X  =  df[df.columns[0:-1]]

所有这些方法都会为你提供y

>> y
    gini
0  0.381
1  0.381
2  0.381
3  0.381
4  0.381
5  0.381
6  0.381
7  0.381
8  0.381

和X

>> X 
   cty_pop2000  countyfipscode county_name statename
0        43671            1001     Autauga   Alabama
1        43671            1001     Autauga   Alabama
2        43671            1001     Autauga   Alabama
3        43671            1001     Autauga   Alabama
4        43671            1001     Autauga   Alabama
5        43671            1001     Autauga   Alabama
6        43671            1001     Autauga   Alabama
7        43671            1001     Autauga   Alabama
8        43671            1001     Autauga   Alabama