現在、Python で大きな csv データセットをインポートしようとして失敗しています。基本的に、私は株式相場で作られた大きな csv ファイルを持っています (列ごとに 1 つの株があり、各株には配当を含む別の列があります)。私は csv モジュールを使用していますが、実際には、列が株式相場である np.array を取得できません。Python は行ごとに np.array を作成し、列ごとに np.array が必要です。どのようにできるのか??
助けてくれてありがとう!!
現在、Python で大きな csv データセットをインポートしようとして失敗しています。基本的に、私は株式相場で作られた大きな csv ファイルを持っています (列ごとに 1 つの株があり、各株には配当を含む別の列があります)。私は csv モジュールを使用していますが、実際には、列が株式相場である np.array を取得できません。Python は行ごとに np.array を作成し、列ごとに np.array が必要です。どのようにできるのか??
助けてくれてありがとう!!
Pandasライブラリの使用をお勧めします。また、大きな csv ファイルを小さなチャンクで読み取ることもできます。ドキュメントの例を次に示します。
データ:
year indiv zit xit
0 1977 A 1.2 0.60
1 1977 B 1.5 0.50
2 1977 C 1.7 0.80
3 1978 A 0.2 0.06
4 1978 B 0.7 0.20
5 1978 C 0.8 0.30
6 1978 D 0.9 0.50
チャンク サイズを指定します (イテラブルを取得します)。
reader = read_table(’tmp.sv’, sep=’|’, chunksize=4)
for chunk in reader:
.....: print chunk
出力:
year indiv zit xit
0 1977 A 1.2 0.60
1 1977 B 1.5 0.50
2 1977 C 1.7 0.80
3 1978 A 0.2 0.06
year indiv zit xit
0 1978 B 0.7 0.2
1 1978 C 0.8 0.3
2 1978 D 0.9 0.5
注意!株式データをさらに操作する必要がある場合は、Pandas が最善の方法です。
私は、csvファイルのパスを取得してdictのリストを一度に返す関数の小さな部分を作成しました。その後、リストを非常に簡単にループします。
def read_csv_data(path):
"""
Reads CSV from given path and Return list of dict with Mapping
"""
data = csv.reader(open(path))
# Read the column names from the first line of the file
fields = data.next()
data_lines = []
for row in data:
items = dict(zip(fields, row))
data_lines.append(items)
return data_lines
これはあなたを助けるかもしれません
よろしく
あなたが探しているのはndarray.shape
機能ndarray.reshape
です。
それ以外の場合は、単にそのまま読んでから、次のように転置することができます
x = x.transpose()
x は ndarray です。
http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.transpose.html
これらの小さなことはすべて、通常はドキュメントにあります。最初にそれらを注意深く読むことをお勧めします。