最近开始学习pandas和matplotlib,于是找了4只银行理财产品的2020年以来的净值数据,尝试计划画出其净值走势图。
数据格式是这个样的,共600多条,一条净值数据一行。有些产品并不是每天披露净值,只能有多少画多少了。原有的数据显然不能直接画图,需要重新整理数据。最终数据形式为:第一列为日期,第二列至第五列为不同产品的累计净值的数据形式。

过程:
第一步pandas读取excel数据;
第二把数据形式通过pandas的透视表功能转化成可画图的形式;
第三步用matplotlib画图。
做之前感觉挺简单的,但是我做了一整天,因为是刚开始学嘛,边学边做,基本是靠百度和哔哩哔哩的视频。看到最后的成果,很有成就感。
我认为,过程中有两个难点:一是把数据转化成可以画图的形式,因为横轴是日期,纵轴是净值;二是中文显示问题,试了好多网上的方法,都不行,好在最终找到适合mac系统的方法。
虽然做出来了,但还有个问题没解决:一是图标上显示了none,不知道怎么去掉。二是有只产品的几个数据就是不显示,最终也没有解决。
以下是代码:
import pandasas pd
import matplotlib
import matplotlib.pyplotas plt
plt.rcParams['font.family']='Arial Unicode MS' #mac显示中文字体
table=pd.read_excel('/Users/xueyzh/Documents/测试数据.xlsx')
table=pd.pivot_table(table,values=['累计净值'],index=['净值日期'],columns='产品代码')
table.plot()
plt.show()
结果:

网友评论