文章来源: 量化小课堂
市盈率(Price Earning Ratio),英文缩写为PE或P/E Ratio,指在一个考察期(通常为12个月的时间)内,股票的价格和每股收益的比例。
市盈率计算方法:
市盈率=普通股每股市场价格 / 普通股每年每股盈利
每股盈利的计算方法,是该企业在过去12个月的净收入除以总发行已售出股数。市盈率越低,代表投资者能够以较低价格购入股票以取得回报。假设某股票的市价为24元,而过去12个月的每股盈利为3元,则市盈率为24/3=8。该股票被视为有8倍的市盈率,即每付出8元可分享1元的盈利。投资者计算市盈率,主要用来比较不同股票的价值。理论上,股票的市盈率愈低,愈值得投资。比较不同行业、不同国家、不同时段的市盈率是不大可靠的。比较同类股票的市盈率较有实用价值。
一般来说,市盈率水平为:
0--13:即价值被低估
14--20:即正常水平
21--28:即价值被高估
28+:反映股市出现投机性泡沫
附上代码
#coding:utf-8
import os
import pandas as pd
stock_code_list = []
for root, dirs, files in os.walk('./all_trading_data/stock data/'):
if files: #存在
for f in files:
if '.csv' in file:
stock_code_list.append(f.split('.csv')[0])
for code in stock_code_list:
if code[2] != '3':
continue
stock_data = pd.read_csv('/all_trading_data/stock data/' + code + '.csv',\
parse_dates =[1])
stock_data= stock_data[stock_data['PE_TTM'].notnull()]
# 净利润 由 市值/PE_TTM 得到
stock_data['net profit'] = stock_data['market_value'] / stock_data['PE_TTM']
stock_data = stock_data[['code', 'date', 'market_value', 'net profit']]
all_stock = all_stock.append(stock_data, ignore_index =True)
output['stock num'] = all_stock.groubpy('date').size()
output['ave PE'] = output['market_value'] / output['net profit']
#保存到csv文件
output.to_csv('创业板平均市盈率.csv', encoding='gbk')