【发布时间】:2015-06-11 22:32:19
【问题描述】:
我有一个带有类标签的简单数据集并存储为“mydata.csv”,
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
0.034 9.039 6.224 0.194 1.137 3.177 0
0.035 10.936 10.304 1.015 0.911 4.9 1
0.022 10.11 9.603 1.374 0.848 4.566 1
我只是使用给定的代码将此数据转换为 numpy 数组,以便我可以将此数据集用于预测和机器学习建模,但由于标头错误已引发“ValueError:无法将字符串转换为浮点数:”时我从文件中删除了标题这种方法对我很有效:
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 数组时,它再次显示错误,就像以前一样。
pandas 中是否有任何可用的方法可以: 将石南花保存为列表:
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
【问题讨论】:
-
不清楚您真正的问题是什么,pandas 数据帧与 sklearn 接口兼容,如果您不想将标头从 pandas 写入 csv,则可以在 @ 中传递参数
header=None987654328@ -
@EdChum 是的,这是真的,实际上我的问题是 1)如果假设我将参数作为 header=None 传递并且在建模之后或在特征选择时我想知道标题我怎么知道标题,因为我在打开文件时忽略了标题。 2)我如何直接使用给定的示例数据和 pandas 以 X =(没有标题和类标签的数据)和 y =(预测的类标签)形式的 scikit-learn 数据框
-
你可以很好地完成所有这些 pandas,就像我说的 sklearn 接口与 pandas dfs 兼容
-
@EdChum 嗨,感谢您的回复,我已经解决了我的问题并写下了我作为答案发布的代码。这段代码对我来说很好。谢谢