金融数据分析(一)python预热:字典排序、计算年增长率

欢迎一起学习金融数据分析

最近进厂实习,互联网金融相关岗位,发现所学的有几分韵味。所以决定抽空列举几个相关案例,学而时习之。

案例(一)python预热

项目中的数据获取和处理大多采用的是python编程语言,所以我们首先来复习下一些常用函数与书写规则。

项目一:字典统计排序

字典d中存储了我国42所双一流高校及所在省份的对应关系,请以这个列表为数据变量,完善Python代码,统计各省份学校的数量。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

输出显示出数量最多的省份及数量。‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬‬

d = {“北京大学”:“北京”, “中国人民大学”:“北京”,“清华大学”:“北京”,
“北京航空航天大学”:“北京”,“北京理工大学”:“北京”,“中国农业大学”:“北京”,
“北京师范大学”:“北京”,“中央民族大学”:“北京”,“南开大学”:“天津”,
“天津大学”:“天津”,“大连理工大学”:“辽宁”,“吉林大学”:“吉林”,
“哈尔滨工业大学”:“黑龙江”,“复旦大学”:“上海”, “同济大学”:“上海”,
“上海交通大学”:“上海”,“华东师范大学”:“上海”, “南京大学”:“江苏”,
“东南大学”:“江苏”,“浙江大学”:“浙江”,“中国科学技术大学”:“安徽”,
“厦门大学”:“福建”,“山东大学”:“山东”, “中国海洋大学”:“山东”,
“武汉大学”:“湖北”,“华中科技大学”:“湖北”, “中南大学”:“湖南”,
“中山大学”:“广东”,“华南理工大学”:“广东”, “四川大学”:“四川”,
“电子科技大学”:“四川”,“重庆大学”:“重庆”,“西安交通大学”:“陕西”,
“西北工业大学”:“陕西”,“兰州大学”:“甘肃”, “国防科技大学”:“湖南”,
“东北大学”:“辽宁”,“郑州大学”:“河南”, “湖南大学”:“湖南”, “云南大学”:“云南”,
“西北农林科技大学”:“陕西”, “新疆大学”:“新疆”}

输出格式
省份:数量 (中文冒号)

d = {
    
    "北京大学":"北京", "中国人民大学":"北京", "清华大学":"北京",
     "北京航空航天大学":"北京", "北京理工大学":"北京", "中国农业大学":"北京",
     "北京师范大学":"北京", "中央民族大学":"北京", "南开大学":"天津",
     "天津大学":"天津", "大连理工大学":"辽宁", "吉林大学":"吉林",
     "哈尔滨工业大学":"黑龙江", "复旦大学":"上海", "同济大学":"上海",
     "上海交通大学":"上海","华东师范大学":"上海", "南京大学":"江苏",
     "东南大学":"江苏", "浙江大学":"浙江", "中国科学技术大学":"安徽",
     "厦门大学":"福建", "山东大学":"山东", "中国海洋大学":"山东",
     "武汉大学":"湖北", "华中科技大学":"湖北", "中南大学":"湖南",
     "中山大学":"广东", "华南理工大学":"广东", "四川大学":"四川",
     "电子科技大学":"四川", "重庆大学":"重庆", "西安交通大学":"陕西",
     "西北工业大学":"陕西", "兰州大学":"甘肃", "国防科技大学":"湖南",
     "东北大学":"辽宁","郑州大学":"河南", "湖南大学":"湖南", "云南大学":"云南",
     "西北农林科技大学":"陕西", "新疆大学":"新疆"}
counts = {
    
    }
for place in d.values():
    counts[place] = counts.get(place, 0) + 1
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
print(items[0][0]+':'+str(items[0][1]))

运行结果:
pg1

项目二:计算手机销量年增长率

1.文件smartphone.txt存放着某些公司手机年销量数据,每行为每家公司若干年销量(百万),数据间的分隔符为制表符。

2.打开文件请注明文件编码格式:with open(“smartPhone.txt”,encoding=“gbk”) as f:

smartPhone.txt文件内容如下:

公司	2014年	2015年	2016年	2017年
Samsung	311	322.9	310.3	318.7
Apple	192.9	231.6	215.2	15.8
Huawei	73.6	104.8	139.1	153.1
OPPO	29.9	50.1	92.9	121.1
Vivo	19.5	40.5	74.3	100.7
ZTE	43.8	56.2	60.1	44.9
LG	59.2	59.7	55.1	55.9
Lenovo	70.1	74.1	50.7	49.7
Xiaomi	61.1	70.7	61.5	96.1

3.编写函数isBigGrowth(L,rate),形参L为一组含有数值型数据的列表(某公司各年份的销量),rate为年增长率,判断并返回是否年销量快速增长:若每年销量增长率都超过给定的rate,则为True,否则为False。

4.主程序读取smartphone.txt内的数据,将每行数据中的年销量转为数值型数据,利用函数isBigGrowth(L,rate)计算并屏幕输出各公司年销量是否快速增长的情况(本题设年销量增长率均超过30%为快速增长),各数据间以制表符相隔。

5.程序运行结果如下图所示:

手机公司 是否快速增长?
Samsung
Apple
Huawei
OPPO 快速
Vivo 快速
ZTE
LG
Lenovo
Xiaomi
import os

def isBigGrowth(L,rate):
    if float (L[2])>float(L[1])*(1+rate) and float(L[3])>float(L[2])*(1+rate) and float(L[4])>float(L[3])*(1+rate):
        return "快速"
    else:
        return "否"
        
with open(r"文件路径\smartPhone.txt") as f:
    line = f.read().strip()
    linestr = line.split("\n")  # 以换行符分隔
    del linestr[0]
print("手机公司    是否快速增长?")
for s in linestr:
    try:
        L = s.split('\t')
        print(L[0], end="    ")
        print(isBigGrowth(L, 0.3))
    except:
        print('运行失败')

运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43082153/article/details/108576220