LOFTER for ipad —— 让兴趣,更有趣

点击下载 关闭
0713_pandas
瓦特的water 2017-07-13

今天 粗略浏览了100 numpy exercise。 大致翻了翻前四十?道。总之索引是非常重要的操作,其余的赋值,提取均以索引和切片为基础。在这一方面还要多加练习。

下午,开始阅读<Python作数据分析>的pandas章节,开始学习Series and DataFrame 数据结构,其index属性对应着字典的键值以及ndarray的‘坐标’。

由于看着文本我很容易就犯困,有时候很难激发我的兴趣。所幸我就找了个<十分钟入门pandas> via:zhihu.com. 里面由一个例子讲起。讲的是英国与日本的降雨量的对比。通过数据由csv取得,对其进行筛选,过滤,然后进行对比。在这一过程中,需要对源数据的结构有一个大致的了解,此外对于索引方面的知识应该进行加强。

爱折腾的瓦特所以找到了有关部门(国家统计局)download了一份有关科技的列表数据。

首次导入,由于源数据的结构不是很清晰,而且出现了一些合并单元格的文本数据,不是很clean. 所以,导致出现了各种NaN。 第二次导入前,我手动对源数据进行了一些修整,使其看上去更加条理。

导入后的文件,存贮在tech 这个DataFrame中。 tech的行索引为各项指标,列索引为时间(1996-2015y)。

对tech的第一行处理:

tech=tech.head(1),

tech = tech.sort_index(axis=1) #为了让绘图xaxis时间符合正常的规律

选取第一行数据,即普通高校数进行绘制, 语句十分简单:

tech.plot(kind='bar')

plt.show()

只不过,结果中藏着一些不愉快。显示的汉字全部为□,很是尴尬。

上网搜了各种,但是大部分的解决方案均是针对matplotlib内部绘图时的方案,可以分为两种:

1 修改配置文件 (没有人推荐这个。。。 )

2 设置字体,编码格式。

上述问题可解决其内部的一些问题,引用格式如下:


plt.xlabel(u'中文测试', fontproperties=my_font)

plt.legend(u'中文测试', prop?=my_font)

但是由pandas导入的数据则不能很好的显示。

所以, 换了一种方案:

加一句,

import seaborn as sns
sns.set_style("darkgrid",{"font.sans-serif":['simhei', 'Arial']})

上述问题得以解决,但是xticks的rotation还是不能很好的修改,明儿再说吧:)。。。

最后, 效果如图(大陆的高校确实很多啊!)

把DataFrame稍微变换一下,进行转置操作。

再绘图,效果好了不少




推荐文章
评论(0)
联系我们|招贤纳士|移动客户端|风格模板|官方博客|侵权投诉 Reporting Infringements|未成年人有害信息举报 0571-89852053|涉企举报专区
网易公司版权所有 ©1997-2024  浙公网安备 33010802010186号 浙ICP备16011220号-11 增值电信业务经营许可证:浙B2-20160599
网络文化经营许可证: 浙网文[2022]1208-054号 自营经营者信息 工业和信息化部备案管理系统网站 12318全国文化市场举报网站
网信算备330108093980202220015号 网信算备330108093980204230011号
分享到
转载我的主页