2017-08-26 4 views
0

私はpythonスクリプトにpandas.read_csv()を使ってcsvファイルの列をインポートしています。データフレームを反復しても期待通りの結果は得られません

Iamのようにやって:

data = pandas.read_csv(path) 
for i in data: 
    print(i) 

は、なぜそれが列の最初の要素だけを印刷していますか?

と私はnpdata = np.array(data)を使用してnumpy配列に変換し、それを印刷すると、最初の要素を除くすべてを出力します。

実際にiamがしようとしているのは、csvファイルから日付/時刻の列を読み込み、いくつかの機能エンジニアリングを行いたいのですが、問題が正しく読み込まれています。

+0

試してみてください: 'print(data)' – Yeile

+0

正しく読み込むのに問題はありません。あなたの問題はデータの処理方法です。従来、 'print(data.head())'を使って読み込んだものを確認していました。 – roganjosh

答えて

3

dataを反復処理すると、探していない列名が繰り返し表示されることになります。

代わりdf.iterrowsを使用し、行を反復処理するには、次の

data = pandas.read_csv(path) 
for i, row in data.iterrows(): 
    print(row) 

MCVE:

print(df) 

    A B 
0 1 2 
1 3 4 
2 5 6 
3 7 8 
4 9 10 

for d in df: 
    print(d) 

A 
B 

for i, d in df.iterrows(): 
    print(d['A'], d['B']) 

1 2 
3 4 
5 6 
7 8 
9 10 

コメントで述べたように、あなたがしたいすべてがのぞくある場合あなたのデータで、プリントアウトdf.head

print(df.head(3)) # the arg is any > zero value signifying the number of rows 

    A B 
0 1 2 
1 3 4 
2 5 6 
+0

@ChristianDean私はその間違いを常に笑います。 –

+0

Np。そうでなければニースの答え。 –

+0

私はその質問で混乱しています。列の1つが索引になっていることを意味しますか?あなたの答えは事実上正しいですが、私はそれを再読した後に問題に対処しているのか分かりません – roganjosh

関連する問題