2017-09-29 10 views
0

ここには、csvファイルのlinkがあります。問題は、私がそれをどのように開いてこのデータセットで何かをする方法については全く知らないということです。オンラインcsvファイルを開くには?

私は自分で列のインデックスを作成したい
from urllib.request import urlopen 

url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv' 
x = urlopen(url) 
data = x.read() 

names = [] 
firstLine = True 
for line in data: 
    if firstLine: 
     names = line.strip().split(';') 
     firstLine = False 

しかし、名前の結果は[」 "「]私は期待されていない

答えて

2

あなたはパンダを使用することができます。これは:

+0

それを感謝します。しかし、パンダを使うと自動的に最初の行がインデックスとして扱われますが、自分でそれをやりたいと思っています。 –

+0

引数 'header = None'を追加して、最初の行がインデックスではなくカラム名にならないようにすることができます。 – Mathias711

+0

が素晴らしいです。それは、同じ出力を達成するための自分のやり方を探していますが、パンダはまだデータを扱う最良の選択です。 –

1

ファイルを読むと(data = x.read())、バイナリオブジェクトを取得すると、 UTF-8にそれをデコードdは:

text = data.decode('utf-8') 

、あなたは、このデータを読み込むためのStringIOとCSVを使用する必要があります。

import csv, io 
reader = csv.reader(io.StringIO(text), csv.excel) 

、今リーダーは、ファイル

+0

私はこれを前に試しましたが、最初の行を列インデックスとして抽出したい場合は、次に進むべきことはありますか? –

+0

@ JAY.Y、私は答えを更新しました –

+0

私は自分のコードを実行すると、 'リスト'オブジェクトは属性 '分割'を示しています。 –

1
からのデータとリストだけです

from urllib.request import urlopen 
import csv 
import io 

url = 'http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv' 
x = urlopen(url) 
csv_data = x.read().decode('utf-8') 
csv_input = csv.reader(io.StringIO(csv_data), delimiter=';') 
header = next(csv_input) 

print("Header is:", header) 
data = list(csv_input) 

# Display start of data 
for row in data[:5]: 
    print(row) 

あなたを与えることになる::次のようにこれを行うことができると

Header is: ['fixed acidity', 'volatile acidity', 'citric acid', 'residual sugar', 'chlorides', 'free sulfur dioxide', 'total sulfur dioxide', 'density', 'pH', 'sulphates', 'alcohol', 'quality'] 
['7.4', '0.7', '0', '1.9', '0.076', '11', '34', '0.9978', '3.51', '0.56', '9.4', '5'] 
['7.8', '0.88', '0', '2.6', '0.098', '25', '67', '0.9968', '3.2', '0.68', '9.8', '5'] 
['7.8', '0.76', '0.04', '2.3', '0.092', '15', '54', '0.997', '3.26', '0.65', '9.8', '5'] 
['11.2', '0.28', '0.56', '1.9', '0.075', '17', '60', '0.998', '3.16', '0.58', '9.8', '6'] 
['7.4', '0.7', '0', '1.9', '0.076', '11', '34', '0.9978', '3.51', '0.56', '9.4', '5'] 
関連する問題