2017-11-11 20 views
-1

CSVファイルの要素を同じ形状のNumPy配列に変換するプログラムを記述するのが非常に難しくなりました。テキストを含むCSVファイルをNumPyの配列に変換するにはどうすればよいですか?

私は次のエラーメッセージを取得(および同様)に保つので、私は私のCSVファイルの要素のいずれかの操作を実行するために苦労しています:

TypeError: '_io.TextIOWrapper' object is not subscriptable 

TypeError: object of type '_io.TextIOWrapper' has no len() 

AttributeError: '_io.TextIOWrapper' object has no attribute 'split' 

私はTextIOWrapperが何であるかや何をするかわからないんだけど。ありがとう!

+2

エラーだけでなく、試してみたところから始めてください。 – roganjosh

+0

あなたはファイルを 'open'していますが、何も' read'していません。エラーは、ファイルをテキスト行または行のリストとして扱おうとしていることを意味します。 'TextIOWrapper'は開いているファイルオブジェクトです。 – hpaulj

答えて

0
import numpy as np 
data = np.genfromtxt('csvfile.csv', delimiter=',') 

numpyののgenfromtxt()メソッドを使用し、区切り文字としてカンマを渡し、あなたがnumpyの配列としてcsvファイルを読み込むことができます。

しかし、ファイルを読み込んでpandas DataFrameを作成するには、pandasのread_csv()を使用することをお勧めします。必要に応じて、DataFrameをnumpy配列に変換することもできます。しかし、numpy配列よりもDataFramesを使って多くの便利なデータ操作を簡単に実行できます。

import pandas as pd 
data = pd.read_csv('csvfile.csv') # this creates a DataFrame 
data_np = np.array(data) # this creates a numpy array from the DataFrame 
関連する問題