2017-08-01 14 views
0

私は少しのコードを持っています。私はリスト上で.dataを行う必要があります。しかし、intable文字列は.dataを取ることができず、整数に変換する必要があります。はい、私はこれが重複していることを知っていますが、他の質問は手動で行い、このリストはあまりにも大きいと言います。どうすればいい?ありがとう。int文字列のリスト/タプルをintに変換する

import numpy as np 
import pandas 
import matplotlib.pyplot as plt 
from matplotlib import style 
style.use("ggplot") 
from sklearn.cluster import KMeans 
from sklearn import datasets 
from sklearn import svm 
from tabulate import tabulate 
from csv import DictReader 

digits = pandas.read_csv('C:/Users/saeed/Downloads/Sacramentorealestatetransactions.csv') 

print(tabulate(digits, headers='keys', tablefmt='psql')) 

with open('C:/Users/saeed/Downloads/Sacramentorealestatetransactions.csv') as i: 
    price = [row["price"] for row in DictReader(i)] 
    print(price) 

clf = svm.SVC(gamma=0.001, C=100) 

x,y = price.data[:1], price.target[:1] 

エラー:

AttributeError: 'list' object has no attribute 'data' 
+0

との声明を使用してを交換してください。 'price'はCSVファイルから読み込まれる普通のリストです。numpyオブジェクトではありません。 – Barmar

+0

パンダとDictreaderという2つの異なる方法でCSVを読んでいる理由はわかりません。あなたはすでに 'digits'のデータを持っています。 'price = list(digits.price)'はDictReaderコードなしで動作します。データフレームのその列を表示する場合は 'print(digits.price)'だけです。 –

答えて

0

あなたが持っている:

price = [row["price"] for row in DictReader(i)] 

し、それを変更する:

price = [int(row["price"]) for row in DictReader(i)] 

は十分なはずです。

+0

ありがとう、これは働いた。しかし、私はまだ同じエラーが発生しています。このリストをint自身の束に変換する方法はありますか?または、別のデータ型にデータ属性がありますか? – Darksp33d

0

は、私はあなたが何をしようとしてわからない

for i in digits: 
    price = [int(row["price"]) for row in DictReader(i)] 
    print(price) 
+0

@ Darksp33dあなたはそれを働かせましたか?もしそうなら、将来の人々がこの問題を解決できるように私の答えを正しいものとしてマークしてください! – James

関連する問題