如果我有一个数据集,包含5列和10行(因此有10个观测值),我想让X成为一个10行4列的输入矩阵,表示前四列,而y成为一个10行1列的输出矩阵,表示数据集中的最后一列,我该如何在Python中编写代码?我希望我的X矩阵包含以下列:cty_pop2000, countyfipscode, county_name和statename。而我的y输出向量应为gini列。我该如何在Python中编写这段代码?如果这个问题很简单,请原谅,我是Python的新手。我尝试过使用sklearn,但他们对X输入和y输出使用的是简单数组。因此,我不知道如何编写我的X矩阵和y向量
我尝试使用以下代码编写它:
import pandas as pddf = pd.read_csv('file_name.csv')X = df.iloc[[0:3]] y = df['gini']
数据集是一个csv文件,内容如下:
cty_pop2000 countyfipscode county_name statename gini43671 1001 Autauga Alabama 0.38143671 1001 Autauga Alabama 0.38143671 1001 Autauga Alabama 0.38143671 1001 Autauga Alabama 0.38143671 1001 Autauga Alabama 0.38143671 1001 Autauga Alabama 0.38143671 1001 Autauga Alabama 0.38143671 1001 Autauga Alabama 0.38143671 1001 Autauga Alabama 0.381
回答:
你可以将最后一列复制到一个向量中,并从原始数据框中删除它。
import pandas as pddf = pd.read_csv('file_name.csv')y = df[['gini']] X = df.drop(['gini'])
或者你可以简单地切片出’gini’列而不删除它
import pandas as pddf = pd.read_csv('file_name.csv')y = df[['gini']] X = df[df.columns.difference(['gini'])]
你也可以使用列索引来切片列:
import pandas as pddf = pd.read_csv('file_name.csv')y = df[[-1]] X = df[df.columns[0:-1]]
所有这些方法都会为y提供
>> y gini0 0.3811 0.3812 0.3813 0.3814 0.3815 0.3816 0.3817 0.3818 0.381
而对于X
>> X cty_pop2000 countyfipscode county_name statename0 43671 1001 Autauga Alabama1 43671 1001 Autauga Alabama2 43671 1001 Autauga Alabama3 43671 1001 Autauga Alabama4 43671 1001 Autauga Alabama5 43671 1001 Autauga Alabama6 43671 1001 Autauga Alabama7 43671 1001 Autauga Alabama8 43671 1001 Autauga Alabama