近日需要對excel的csv文件進行處理,求取某銀行歷年股價的均值方差等一系列數據
文件的構成很簡單,部分如下所示

總共有接近七千行數據,主要的工作就是將其中的股價數據提取出來,放入一個數組之中,然后利用numpy模塊即可求出需要的數據。
這里利用了csv模塊來對文件進行處理,最終實現的代碼如下:
import csv import numpy as np with open('pingan_stock.csv') as csv_file: row = csv.reader(csv_file, delimiter=',') next(row) # 讀取首行 price = [] # 建立一個數組來存儲股價數據 # 讀取除首行之后每一行的第二列數據,並將其加入到數組price之中 for r in row: price.append(float(r[1])) # 將字符串數據轉化為浮點型加入到數組之中 print(np.var(price)) # 輸出均值 print(np.mean(price)) # 輸出方差
首先利用csv的reader方法,其中delimiter可有可無,它是一個分隔符,原本的值就是逗號,所以加不加無所謂
reader返回的是一個可以迭代的對象,需要使用for循環遍歷,row的部分輸出值如下:

next(row)的作用是讀取第一個列表,也就是['year','price'],因為后面的代碼中要將字符型的數據轉化為浮點型,便於最后的計算,所以這句代碼必須加上,否則在轉換時就會報錯,在對row進行遍歷時,r[1]表示每一行的第二個數據,利用append將每一行的第二列數據存入數組之中,當遍歷完成時,第二列的所有數據就成功存入了price數組中,並且都是浮點型的數據,得到了這個數組就算是大功告成了,最后利用numpy模塊的mean和var分別計算出均值和方差。
