第1关:净利润率增长率连续三年大于40%上市公司计算与获取
获取数据
通俗的理解,获取数据就是:用相关函数读取需要的数据。
示例如下:
dt=pd.read_excel('data2.xlsx')
采用值统计函数
采用值统计函数value_count()即可实现筛选。
code=dt['Stkcd'].value_counts()
获取净利润数据
通俗的理解,遍历数组就是:采用循环的方式,利用公式,依次取得4年的净利润数据,将其转化为Numpy数据组的形式。
示例如下:
list1=[]
list2=[]
list3=[]
list4=[]
for t in range(len(code)):
d=dt.iloc[dt.iloc[:,0].values==code[t],2].values
r=(d[1:]-d[0:-1])/d[0:-1]
if len(r[r>0.4])==3:
list1.append(S[code[t]])
list2.append(r[0])
list3.append(r[1])
list4.append(r[2])
# -*- coding: utf-8 -*-#读取“计算机、通信和其他电子设备制造业”行业上市公司-的# 净利润数据“data2.xsx”,字段如下:# 股票代码(Stkcd)、会计年度(Accper)、净利润(B002000101)# 读取股票代码基本信息表“info.xlsx”,字段如下:# 股票代码(Stkcd)、股票简称(Stknme)、行业名称(Nnindnme)# 任务如下:# 1.计算获得净利润增长率连续三年大于40%的上市公司股票,并返回结果# 2.返回结构用一个数据框D来表示,其中index为上市公司股票简称,# 字段为“”、“”、“”,值为当年的净利润增长率import numpy as np import pandas as pddef return_values():data1=pd.read_excel('data2.xlsx')info=pd.read_excel('info.xlsx')# print(data1)# print(data2)code=data1['Stkcd'].value_counts()code=list(code[code==4].index)info=pd.read_excel('info.xlsx')S=pd.Series(info.iloc[:,1].values,index=info.iloc[:,0].values)list1=[]list2=[]list3=[]list4=[]for t in range(len(code)):d=data1.iloc[data1.iloc[:,0].values==code[t],2].valuesr=(d[1:]-d[0:-1])/d[0:-1]if len(r[r>0.4])==3:list1.append(S[code[t]])list2.append(r[0])list3.append(r[1])list4.append(r[2])D={'':list2,'':list3,'':list4}D=pd.DataFrame(D,index=list1)return D