2017-04-18 1 views
1

私は百万以上のエントリを持つCSVファイルを扱っています。私は、各候補のデータを別々の列として読み込もうとしています。私は最初の候補者のデータを解析することができましたが、次の候補者になるとインデックスにない[[cand_nm]]というエラーが表示されます。ここでパンダ。 pd.read_csv KeyError:インデックスエラーではありません

は、ファイルへのリンクです:Link to data file

%matplotlib 
import matplotlib.pyplot as plt 
import pandas as pd 
import numpy as np 

まず候補

reader_bachmann = pd.read_csv('P00000001-ALL.csv', squeeze=True, low_memory=False, nrows=411) 
print(reader_bachmann) 
cand_bachmann = reader_bachmann[["cand_nm"]] 
print(cand_bachmann) 

第2候補

reader_romney = pd.read_csv('P00000001-ALL.csv', skiprows=range(0,411) , na_filter =True, low_memory=False) 
print(reader_romney) 
cand_romney = reader_romney[["cand_nm"]] 
print(cand_romney) 

エラーメッセージ

KeyError: "['cand_nm'] not in index" 
+0

最初の行はヘッダーですか?あなたの 'skiprows = range(0,411)'はヘッダーをスキップし、 'cand_nm'が定義されていないと思われます。 – Yeile

+0

ありがとうございました。問題を修正しました。 – pooh098

答えて

2

skip_rowsを使用すると、ヘッダーが失われます。したがって、reader_romneyのヘッダーは行番号412になりました。これがファイルを読み取る方法であれば、ヘッダー行を文字列のリストに格納し、次にそのリストをnames= kwargとして渡す必要があります。たとえば、

r_bachman = pd.read_csv('P00000001-ALL.csv', squeeze=True, low_memory=False, 
         nrows=411) 
cols = r_bachman.columns 
r_romney = pd.read_csv('P00000001-ALL.csv', skiprows=range(0,411), 
         na_filter =True, low_memory=False, names=cols) 
+0

ありがとうございます。問題を修正しました。 – pooh098

関連する問題