【发布时间】:2014-06-12 17:04:24
【问题描述】:
我有一个来自 kaggle.com 的 python 项目。我在读取数据集时遇到问题。它有一个 csv 文件。我们需要读入它并将目标和训练部分放入数组中。
这里是数据集的前3行(目标列是第19列,特征是前18列):
user gender age how_tall_in_meters weight body_mass_index x1
debora Woman 46 1.62 75 28.6 -3
debora Woman 46 1.62 75 28.6 -3
此处未显示的目标列具有字符串值。
from pandas import read_csv
import numpy as np
from sklearn.linear_model.stochastic_gradient import SGDClassifier
from sklearn import preprocessing
import sklearn.metrics as metrics
from sklearn.cross_validation import train_test_split
#d = pd.read_csv("data.csv", dtype={'A': np.str(), 'B': np.str(), 'S': np.str()})
dataset = np.genfromtxt(open('data.csv','r'), delimiter=',', dtype='f8')[1:]
target = np.array([x[19] for x in dataset])
train = np.array([x[1:] for x in dataset])
print(target)
我得到的错误是:
Traceback (most recent call last):
File "C:\Users\Cameron\Desktop\Project - Machine learning\datafilesforproj\SGD_classifier.py", line 12, in <module>
dataset = np.genfromtxt(open('data.csv','r'), delimiter=',', dtype='f8')[1:]
File "C:\Python33\lib\site-packages\numpy\lib\npyio.py", line 1380, in genfromtxt
first_values = split_line(first_line)
File "C:\Python33\lib\site-packages\numpy\lib\_iotools.py", line 217, in _delimited_splitter
line = line.split(self.comments)[0]
TypeError: Can't convert 'bytes' object to str implicitly
【问题讨论】:
-
请花一些时间来正确格式化代码。
-
另外,尝试提出minimal working example。您的问题与 Kaggle.com 无关。并且您应该尝试将您的程序减少到 2 行以隔离问题。另外,创建一个非常简单的 .csv 文件来练习。
-
@CoDEmanX 不,不是。这是特定于 numpy 的,参见。我的回答。
标签: python string python-3.x type-conversion rawbytestring