创业板平均市盈率

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')
原文地址:https://www.cnblogs.com/wumac/p/6061971.html