Berechnen Sie die Wachstumsrate des Nettogewinns börsennotierter Unternehmen und durchbrechen Sie das Online-Experiment

Stufe 1: Berechnung und Erwerb börsennotierter Unternehmen mit einer Wachstumsrate der Nettogewinnmarge von mehr als 40 % in drei aufeinanderfolgenden Jahren

Daten abrufen

Nach allgemeinem Verständnis bedeutet das Erhalten von Daten: Verwenden verwandter Funktionen zum Lesen der erforderlichen Daten .

Beispiele sind wie folgt:

dt=pd.read_excel('data2.xlsx')

Verwenden Sie die Wertstatistikfunktion

Die Filterung kann mithilfe der Wertestatistikfunktion value_count() erreicht werden.

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

Erhalten Sie Nettogewinndaten

Laienhaft ausgedrückt bedeutet das Durchlaufen des Arrays: Verwenden einer Schleife und Verwenden von Formeln, um die Nettogewinndaten für vier aufeinanderfolgende Jahre zu erhalten und sie in eine Numpy-Datengruppe umzuwandeln.

Beispiele sind wie folgt:

  1. list1=[]
  2. list2=[]
  3. list3=[]
  4. list4=[]
  5. for t in range(len(code)):
  6. d=dt.iloc[dt.iloc[:,0].values==code[t],2].values
  7. r=(d[1:]-d[0:-1])/d[0:-1]
  8. if len(r[r>0.4])==3:
  9. list1.append(S[code[t]])
  10. list2.append(r[0])
  11. list3.append(r[1])
  12. list4.append(r[2])
# -*- coding: utf-8 -*-
#读取“计算机、通信和其他电子设备制造业”行业上市公司2014-2017年的
# 净利润数据“data2.xsx”,字段如下:
# 股票代码(Stkcd)、会计年度(Accper)、净利润(B002000101)

# 读取股票代码基本信息表“info.xlsx”,字段如下:
# 股票代码(Stkcd)、股票简称(Stknme)、行业名称(Nnindnme)
# 任务如下:

# 1.计算获得净利润增长率连续三年大于40%的上市公司股票,并返回结果
# 2.返回结构用一个数据框D来表示,其中index为上市公司股票简称,
#   字段为“2015”、“2016”、“2017”,值为当年的净利润增长率
import numpy as np 
import pandas as pd
def 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].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}
            D=pd.DataFrame(D,index=list1)
    return D

おすすめ

転載: blog.csdn.net/cfy2401926342/article/details/131536620