我目前沒有試圖用Python導入大的csv數據集。基本上,我有一個由股票報價組成的大型csv文件(每個股票一列,每個股票另一列包含股息)。我正在使用csv模塊,但事實是,我無法得到np.array哪些列是股票報價.Python按行創建一個np.array,我想按列列出一個np.array。我能怎麼做??Python:大csv文件導入
感謝您的幫助!
我目前沒有試圖用Python導入大的csv數據集。基本上,我有一個由股票報價組成的大型csv文件(每個股票一列,每個股票另一列包含股息)。我正在使用csv模塊,但事實是,我無法得到np.array哪些列是股票報價.Python按行創建一個np.array,我想按列列出一個np.array。我能怎麼做??Python:大csv文件導入
感謝您的幫助!
我已經創建了小片的功能能源部採取csv文件的路徑讀取和一次很輕鬆地返回字典的列表,那麼你通過列表循環,
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
可能,這將幫助你
Regards
謝謝你的答案。我無法得到我想要的,所以我會更精確。這是我的數據庫的樣子: – marino89
你在找什麼是ndarray.shape
和ndarray.reshape
的功能。
否則,您可以只是簡單的閱讀你的方式,然後通過執行
x = x.transpose()
其中x是一個ndarray做轉置。
http://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.transpose.html
所有這些小東西通常都在文檔中。我會建議仔細閱讀。
我會推薦使用Pandas庫。它還使您可以通過較小的塊來讀取較大的csv文件。下面是從文檔的examle:
數據:
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
NB!如果您需要進一步處理您的股票數據,熊貓無論如何都是最好的選擇。
你的問題是什麼? –
Python的'csv'模塊使用生成器遍歷數據。如果你試圖將一個巨大的數據集存儲在一個numpy數組中並且失敗了,那麼你可能根本沒有足夠的RAM。 –
請寫下您的代碼 –