上市公司净利润增长率的计算在线实验闯关

#读取“计算机、通信和其他电子设备制造业”行业上市公司2014-2017年的

# 净利润数据“data2.xsx”,字段如下:

# 股票代码(Stkcd)、会计年度(Accper)、净利润(B002000101)

# 读取股票代码基本信息表“info.xlsx”,字段如下:

# 股票代码(Stkcd)、股票简称(Stknme)、行业名称(Nnindnme)

# 任务如下:

# 1.计算获得净利润增长率连续三年大于40%的上市公司股票,并返回结果

# 2.返回结构用一个数据框D来表示,其中index为上市公司股票简称,

#   字段为“2015”、“2016”、“2017”,值为当年的净利润增长率

def return_values():

    import pandas as pd

    dt=pd.read_excel('data2.xlsx') #获取数据

#选择满足2014—2017年都存在利润数据的上市公司股票代码,即存在4个会计年度

    code=dt['Stkcd'].value_counts()

    code=list (code[code==4].index)

#将股票基本信息表转化为序列,其中index为股票代码,值为股票名称

    info=pd.read_excel('info.xlsx')

    S=pd.Series(info.iloc[:,1].values,index=info.iloc[:,0].values)#预定义4个list,依次存放股票名称、2015年、2016年、2017年的净利润增长率

    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])

#将净利润增长率数据定义为字典

    D={'2015':list2, '2016':list3, '2017':list4}

#将字典转化为数据框,index为股票名称

    D=pd.DataFrame(D, index=list1)

    return D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值