2017-04-22 15 views
2

私はcsvファイルから最初の列のみを読み込みたいです。私は以下のコードを試しましたが、利用可能なソリューションから結果が得られませんでした。Python - csvファイルから特定の列を読み取る

data = open('data.csv') 
reader = csv.reader(data) 
interestingrows = [i[1] for i in reader]' 

私が得たエラーは次のとおりです。

Traceback (most recent call last): 
    File "G:/Setups/Python/pnn-3.py", line 12, in <module> 
     interestingrows = [i[1] for i in reader] 
    File "G:/Setups/Python/pnn-3.py", line 12, in <listcomp> 
     interestingrows = [i[1] for i in reader] 
IndexError: list index out of range 
+1

'私は、[1]'あなたの第一、第二のカラムではないが得られます。あなたは 'i [0]'を試してください – Kasramvd

+0

助けをありがとう –

+0

[csvファイルから各列を読む]の可能な複製(http://stackoverflow.com/questions/5741518/reading-each-column-from-csv-file ) –

答えて

0

あなたは刃先交換式のiterableから最初の項目をしたい場合は、インデックスとして0を使用する必要があります。しかし、この場合は、列の反復子を取得するためにzip()を単に使用することができ、csv.readerは反復子を返します。したがって、next()を使用して最初の列を取得できます。

with open('data.csv') as data: 
    reader = csv.reader(data) 
    first_column = next(zip(*reader)) 
2

また、例えばそのヘッダ

て列にアクセスするためにDictReaderを使用することができます:あなたは、ヘッダーと「stackoverflow.csv」と呼ばれるファイル(「Oopsy」、「デイジー」、「ラフ」を持っていた場合、そしてあなたは、このスクリプトで最初の列にアクセスすることができ 「タンブル」):

import csv 
with open(stackoverflow.csv) as csvFile: 
#Works if the file is in the same folder, 
# Otherwise include the full path 
    reader = csv.DictReader(csvFile) 
    for row in reader: 
     print(row["Oopsy"]) 
+0

このリンクは質問に答えるかもしれませんが、答えの本質的な部分をここに含めて参考にしてください。リンクされたページが変更された場合、リンクのみの回答は無効になります。 [良い答えを書く方法](https://stackoverflow.com/help/how-to-answer)を参照してください – Nuageux

+0

謝罪、私はこのすべてに新しいです。私はコードを追加しました、どう見ていますか? – kosherdiah

+0

インデントがうまくいけない場合は、インデントには注意してください。 (私は編集でそれを修正する) – Nuageux

関連する問題