import os import pandas as pd stock_code_list = [] for root,dirs,files in os.walk('stock data'): if files: for f in files: if '.csv' in f: stock_code_list.append(f.split('.csv')[0]) all_stock = pd.DataFrame() for code in stock_code_list: if code[2]!='3': continue print(code) stock_data = pd.read_csv('stock data/'+code+'.csv',parse_dates=[1]) stock_data = stock_data[stock_data['PE_TTM'].notnull()]#刪除PE_TTM爲空的行 #PE_TTM = 總市值/淨利潤_TTM,這裏經過這個公式計算淨利潤_TTM stock_data['淨利潤']=stock_data['market_value']/stock_data['PE_TTM'] #選取須要的字段,去除其餘不須要的字段 stock_data = stock_data[['code','date','market_value','淨利潤']] #將該股票的合併 all_stock = all_stock.append(stock_data,ignore_index=True) #基於all_stock表格,經過groupby語句,計算創業板股票天天的平均市盈率 #經過groupby語句計算天天全部股票的市值之各、淨利潤之和,以及當天交易的股票的數量 output = all_stock.groupby('date')[['market_value','淨利潤']].sum() output['股票數量'] = all_stock.groupby('date').size() #平均市盈率=全部股票的市值之和/全部股票的淨利潤之和 output['創業板平均市盈率'] = output['market_value']/output['淨利潤'] #算好的數據輸出 output.to_csv('創業板平均市盈率.csv',encoding='gbk')