Python 如何将pandas数据帧转换为numpy数据帧

Python 如何将pandas数据帧转换为numpy数据帧,python,csv,numpy,pandas,Python,Csv,Numpy,Pandas,我有一个带有类标签的简单数据集,存储为“mydata.csv” 我只需使用给定的代码将此数据转换为numpy数组,这样我就可以使用此数据集进行预测和机器学习建模,但由于出现了header is错误“ValueError:无法将字符串转换为float:”当我从文件中删除header时,此方法对我很有效: import numpy as np #from sklearn import metrics #from sklearn.linear_model import LogisticRegressi

我有一个带有类标签的简单数据集,存储为“mydata.csv”

我只需使用给定的代码将此数据转换为numpy数组,这样我就可以使用此数据集进行预测和机器学习建模,但由于出现了header is错误“ValueError:无法将字符串转换为float:”当我从文件中删除header时,此方法对我很有效:

import numpy as np
#from sklearn import metrics
#from sklearn.linear_model import LogisticRegression
from sklearn.svm import SVC

raw_data = open("/home/me/Desktop/scklearn/data.csv")
dataset = np.loadtxt(raw_data, delimiter=",")
X = dataset[:,0:5]
y = dataset[:,6]
我还尝试跳过标题,但出现错误:

dataset = np.loadtxt(raw_data, delimiter=",")[1:]
然后我转到pandas,并能够从此方法导入数据:

raw_data = pandas.read_csv("/home/me/Desktop/scklearn/data.csv")
但在这里,当我试图将其转换为numpy数组时,我又犯了一个错误,就像前面一样

熊猫是否有任何方法可以: 将heathers另存为列表:

header_list = ('GA_ID','PN_ID','PC_ID' ,'MBP_ID' ,'GR_ID' , 'AP_ID','class')
最后一列作为类标签,其余部分(1:4,0:5)作为模型构建的numpy数组:

我写了一个代码来获取列列表

clm_list = []
raw_data = pandas.read_csv("/home/me/Desktop/scklearn/data.csv")
clms = raw_data.columns()
for clm in clms:
    clm_list.append(clm)
print clm_list ## produces column list

在阅读了很多之后,我终于实现了我想要的,并成功地在scikit learn上实现了数据,下面给出了使用scikit learn兼容表单转换CSV数据的代码。谢谢

import pandas as pd
r = pd.read_csv("/home/zebrafish/Desktop/ex.csv")
print r.values

clm_list = []
for column in r.columns:
    clm_list.append(column)


X = r[clm_list[0:len(clm_list)-1]].values
y = r[clm_list[len(clm_list)-1]].values

print clm_list
print X
print y
这段代码的结果正是我想要的:

['GA_ID', 'PN_ID', 'PC_ID', 'MBP_ID', 'GR_ID', 'AP_ID', 'class']

[[  0.033   6.652   6.681   0.194   0.874   3.177]
 [  0.034   9.039   6.224   0.194   1.137   3.177]
 [  0.035  10.936  10.304   1.015   0.911   4.9  ]
 [  0.022  10.11    9.603   1.374   0.848   4.566]]

[0 0 1 1]

在阅读了很多之后,我终于实现了我想要的,并成功地在scikit learn上实现了数据,下面给出了使用scikit learn兼容表单转换CSV数据的代码。谢谢

import pandas as pd
r = pd.read_csv("/home/zebrafish/Desktop/ex.csv")
print r.values

clm_list = []
for column in r.columns:
    clm_list.append(column)


X = r[clm_list[0:len(clm_list)-1]].values
y = r[clm_list[len(clm_list)-1]].values

print clm_list
print X
print y
这段代码的结果正是我想要的:

['GA_ID', 'PN_ID', 'PC_ID', 'MBP_ID', 'GR_ID', 'AP_ID', 'class']

[[  0.033   6.652   6.681   0.194   0.874   3.177]
 [  0.034   9.039   6.224   0.194   1.137   3.177]
 [  0.035  10.936  10.304   1.015   0.911   4.9  ]
 [  0.022  10.11    9.603   1.374   0.848   4.566]]

[0 0 1 1]

在阅读了很多之后,我终于实现了我想要的,并成功地在scikit learn上实现了数据,下面给出了使用scikit learn兼容表单转换CSV数据的代码。谢谢

import pandas as pd
r = pd.read_csv("/home/zebrafish/Desktop/ex.csv")
print r.values

clm_list = []
for column in r.columns:
    clm_list.append(column)


X = r[clm_list[0:len(clm_list)-1]].values
y = r[clm_list[len(clm_list)-1]].values

print clm_list
print X
print y
这段代码的结果正是我想要的:

['GA_ID', 'PN_ID', 'PC_ID', 'MBP_ID', 'GR_ID', 'AP_ID', 'class']

[[  0.033   6.652   6.681   0.194   0.874   3.177]
 [  0.034   9.039   6.224   0.194   1.137   3.177]
 [  0.035  10.936  10.304   1.015   0.911   4.9  ]
 [  0.022  10.11    9.603   1.374   0.848   4.566]]

[0 0 1 1]

在阅读了很多之后,我终于实现了我想要的,并成功地在scikit learn上实现了数据,下面给出了使用scikit learn兼容表单转换CSV数据的代码。谢谢

import pandas as pd
r = pd.read_csv("/home/zebrafish/Desktop/ex.csv")
print r.values

clm_list = []
for column in r.columns:
    clm_list.append(column)


X = r[clm_list[0:len(clm_list)-1]].values
y = r[clm_list[len(clm_list)-1]].values

print clm_list
print X
print y
这段代码的结果正是我想要的:

['GA_ID', 'PN_ID', 'PC_ID', 'MBP_ID', 'GR_ID', 'AP_ID', 'class']

[[  0.033   6.652   6.681   0.194   0.874   3.177]
 [  0.034   9.039   6.224   0.194   1.137   3.177]
 [  0.035  10.936  10.304   1.015   0.911   4.9  ]
 [  0.022  10.11    9.603   1.374   0.848   4.566]]

[0 0 1 1]


不清楚您真正的问题是什么,熊猫数据帧与sklearn接口兼容,另外,如果您不想将头从pandas写入csv,则可以在
中将param
header=None
传递给_csv
@EdChum是的,这是真的,实际上我的问题是1)如果假设我将param作为header=None传递,在建模后或在特征选择时,我想知道头,我如何知道我的头打开文件时忽略了标题。以及2)我如何直接使用给定的示例数据和pandas来学习数据帧,其形式为X=(数据没有标题和类标签)和y=(预测的类标签)您可以很好地完成所有这些,就像我说的,sklearn接口与pandas兼容dfs@EdChum您好,谢谢您的回复,我已经解决了我的问题,并写下了一个代码,我已张贴作为答案。这个代码对我来说很好。感谢您清楚您真正的问题是什么,熊猫数据帧与sklearn接口兼容,另外,如果您不想将头从pandas写入csv,则可以在
中将param
header=None
传递给_csv
@EdChum是的,这是真的,实际上我的问题是1)如果假设我将param作为header=None传递,在建模后或在特征选择时,我想知道头,我如何知道我的头打开文件时忽略了标题。以及2)我如何直接使用给定的示例数据和pandas来学习数据帧,其形式为X=(数据没有标题和类标签)和y=(预测的类标签)您可以很好地完成所有这些,就像我说的,sklearn接口与pandas兼容dfs@EdChum您好,谢谢您的回复,我已经解决了我的问题,并写下了一个代码,我已张贴作为答案。这个代码对我来说很好。感谢您清楚您真正的问题是什么,熊猫数据帧与sklearn接口兼容,另外,如果您不想将头从pandas写入csv,则可以在
中将param
header=None
传递给_csv
@EdChum是的,这是真的,实际上我的问题是1)如果假设我将param作为header=None传递,在建模后或在特征选择时,我想知道头,我如何知道我的头打开文件时忽略了标题。以及2)我如何直接使用给定的示例数据和pandas来学习数据帧,其形式为X=(数据没有标题和类标签)和y=(预测的类标签)您可以很好地完成所有这些,就像我说的,sklearn接口与pandas兼容dfs@EdChum您好,谢谢您的回复,我已经解决了我的问题,并写下了一个代码,我已张贴作为答案。这个代码对我来说很好。感谢您清楚您真正的问题是什么,熊猫数据帧与sklearn接口兼容,另外,如果您不想将头从pandas写入csv,则可以在
中将param
header=None
传递给_csv
@EdChum是的,这是真的,实际上我的问题是1)如果假设我将param作为header=None传递,在建模后或在特征选择时,我想知道头,我如何知道我的头打开文件时忽略了标题。以及2)我如何直接使用给定的示例数据和pandas来学习数据帧,其形式为X=(数据没有标题和类标签)和y=(预测的类标签)您可以很好地完成所有这些,就像我说的,sklearn接口与pandas兼容dfs@EdChum您好,谢谢您的回复,我已经解决了我的问题,并写下了一个代码,我已张贴作为答案。这个代码对我来说很好。谢谢,您可以将列列表创建简化为:
clm\u list=list(r)
我刚刚复制了您的代码。它运行了我的Scikit程序。谢谢。您可以将列列表创建简化为:
clm\u list=list(r)
我刚刚复制了您的代码。它运行了我的Scikit程序。谢谢。您可以将列列表创建简化为:
clm\u列表=