20200531 周报项目小结:用到的函数、功能和心得

1、显示结果,保留两位小数

risk  = round(last ,  2)

2、读取dbf文件,选择数据

#python中安装一下dbfread模块

pip install dbfread 

#导入dbfread模块中的DBF函数

from dbfread import DBF  
table = DBF('4N_JJFEZB_20200522.dbf',encoding='GBK')
for record in table:
    for field in record:
        if field == '前十名占比':
            fund_fezb = record[field]

3、读取Excel文件

import pandas as pd
df1 = pd.read_excel('20200522.xls', header=6) #取出整个表并从第6行导入
df1 = df1.set_index(df1['科目代码'], drop=True) #把“科目代码”列设置为主键

 #只需要科目代码、科目名称、数量、成本、成本占比列数据
df  = df1.iloc[:,[1, 4, 7, 8]]

4、将带有逗号的数据比如“87,809.01”,去掉逗号,再转成浮点数

#取出必要的固定信息
zcjz = float(df['科目名称']['净值(成本)'].replace(',',"")) #先取出需要的资产净值数据,再去掉逗号,转成浮点数

5、merge函数使用,左边指定、右边指定、how确认哪里为主

#用merge函数,按照左连接,指定为“科目名称”进行连接
data = pd.merge(df, df_all, left_on='科目名称', right_on='证券简称', how='left')

6、生成一个日期序列,可以是相同的日期

data['当前日期'] = pd.date_range(start='2020-05-22',end='2020-05-22', periods=len(data.index))

7、查看,按照dataframe中某一列数据排序的效果

data.sort_values(by='到期日期',ascending=True)

8、使用groupby函数分类并agg计算,生成一个dataframe,可以使用

data.groupby('Wind债券二级分类').agg(np.sum) #查看按照债券分类的情况
 data.groupby('Wind债券二级分类').agg(np.sum)['成本']['国债'] + data.groupby('Wind债券二级分类').agg(np.sum)['成本']['政策银行债']
data.groupby('发行人最新评级').agg(np.sum)
data[data['发行人最新评级'] == 'AA+'].groupby('发行人中文名称').agg(np.sum).sort_values(by='成本占比', ascending=False)

9、得到结果,生成一个dataframe装入结果,可以用来导出

#注:先定义一下列,可以用list,再用pandas生成一个dataframe

col_over = ['产品名称','产品代码','资产净值']

生成一个三列一行的dataframe

data_over = pd.DataFrame(index=[0],columns=col_over)

导出周报

data_over.to_excel(excel_writer='周报.xlsx', index=False, encoding='utf-8')

10、项目小结

(1)先分析需求,再结合特征理顺设计思路和逻辑框架,最后落实程序编制和自动化实现。
(2)写代码,注释很重要;方便阅读、修改和更新。
(3)函数、功能等容易忘记,尽量抽丝剥茧记录核心,便于查阅。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值