【摘要】pandas是数据分析师分析数据最常用的三方库之一,结合matplotlib,非常强大。

首先我们收集一些数据。

从东方财富客户端导出券商信托板块2018年11月1日的基础行情和财务数据。分别保存为zhengquan1.csv和zhengquan2.csv,文件可以从本文附件中下载。

导入pandas和读取csv文件

import pandas as pd#解析基础行情csv
df1 = pd.read_csv(u'zhengquan1.csv',sep=',', encoding='utf-16')
df1.head()

pd.read_csv可以将csv文件解析为pandas的DataFrame对象。导出的文件是由utf-16编码的,要加encoding参数。

df1.head()可以取DataFrame前5行。

可以看出pandas结合jupyter可以很直观的看到全部数据的大致情况。

DataFrame的行列名可以直接用index、columns获取,后面我们会慢慢介绍。

df1.columns

df1.index.values

我们看到有一列名为’Unnamed: 3‘的数据列,这一列是不需要的数据,我们希望将其删除,可以使用drop方法。

df1.drop('Unnamed: 3',inplace=True, axis=1)
df1.head(3)

drop方法中有两个参数,inplace=True代表处理后的DataFrame替换原来的DataFrame;axis=1代表处理列数据。

接下来我们试试将df1中的第一行删除。

df1.drop(0,inplace=True)
df1.head(3)

可以看出,我们这次没有使用axis参数,因为axis默认为0,代表处理行数据,可以省略。

上面的一些操作让我们对数据做了一些清洗。

接下来我们想提取一些我们比较关心的数据,例如提取'代码'、'名称'、'最新'、'换手'、'市盈率'、'市净率'、'总市值'、'流通市值'这几列.

df1_clean = df1[[u'代码',u'名称',u'最新',u'换手',u'市盈率',u'市净率',u'总市值',u'流通市值']]
df1_clean.head()

这时,我们想通过市净率来排序,看看市净率最低的几家券商信托是哪些。我们可以借助sort_values来实现:

df1_clean.sort_values(u'市净率').head()

sort_values方法有一个ascending参数,我们可以设置升序或者降序。

df1_clean.sort_values(u'最新',ascending=False).head()

我们看到DataFrame中有些值是字符串和其他字符,我们想要批量将其删除。向大家介绍apply函数:

def fn(x):try:x[u'市盈率'] = pd.to_numeric(x[u'市盈率'].split(' ')[0])x[u'总市值'] = pd.to_numeric(x[u'总市值'][:-2])x[u'流通市值'] = pd.to_numeric(x[u'流通市值'][:-2])x[u'换手'] = pd.to_numeric(x[u'换手'][:-1])return xexcept:pass
df1_clean = df1_clean.apply(func=fn,axis=1)
df1_clean.head()

上述代码将亏损的股票剔除出了DataFrame。为了进一步清洗,将存在nan的数据行删除。

df1_clean.dropna(inplace=True)

接下来我们可以将DataFrame中的一些数据借助matplotlib画出柱状图:

import matplotlib.pyplot as pltplt.rcParams["figure.figsize"] = (20,24)
df1_clean.plot(x=u'代码',y=u'市盈率',kind='barh');

pandas用于金融分析还有很多个性化的手段,这次我们主要讲了讲数据的清洗和处理。

后面我们会接着介绍pandas的更多使用技巧,如果想了解环境的安装,可以看我前面的文章:

ubuntu16.04 安装cuda9.0+cudnn7.0.5+tensorflow+nvidia-docker配置GPU服务

证券数据.zip

来源:华为云社区  作者:Edison

如何使用pandas分析金融数据相关推荐

  1. Python学习:如何使用pandas分析excel数据

    1.问题 在python中,读写excel数据方法很多,比如xlrd.xlwt和openpyxl,实际上限制比较多,不是很方便.比如openpyxl也不支持csv格式.有没有更好的方法? 2.方案 更 ...

  2. 随机森林分析金融数据

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 随机森林模型 一.随机森林模型 1.数据加载 二.数据清洗 2.1.删除变量 2.2变量数据类型转换 2.3划分训练集和测试 ...

  3. 用pandas分析百万电影数据

    用pandas分析电影数据 Lift is short, use Python. 用Python做数据分析,pandas是Python数据分析的重要包,其他重要的包:numpy.matplotlib ...

  4. python 金融可视化_用 Python 进行金融数据可视化

    Python量化的关键是金融数据可视化,不管是传统的K线图,仍是如今的策略分析,都须要大量的可视化图表.具体到编程代码,就是使用Python绘图模块库绘图,好比传统的Python绘图模块库有Matpl ...

  5. 用 Python 进行金融数据可视化

    Python量化的关键是金融数据可视化,无论是传统的K线图,还是现在的策略分析,都需要大量的可视化图表.具体到编程代码,就是使用Python绘图模块库绘图,比如传统的Python绘图模块库有Matpl ...

  6. 如何去使用Python分析股票数据?学到就是赚到

    对于炒股的同学来说,必须会看懂数据才能避免入坑.今天小千就来教大家如何去使用Python分析股票数据,学到就是赚到.(小千提醒,股市有风险,请谨慎投资) 这次的美股例子就选择了美国显卡制造商英伟达,其 ...

  7. 【项目实战】P2P金融数据指标分析

    python:P2P金融数据指标分析 # -*- coding: utf-8 -*- """ Created on Wed Jul 4 17:31:47 2018@aut ...

  8. python金融量化书籍_超强干货 | Python金融数据量化分析教程+机器学习电子书

    如今Python语言的学习已经上升到了国家战略的层面上.Python语言是人工智能的基础语言,国家相关教育部门对于"人工智能普及"格外重视,不仅将Python列入到小学.中学和高中 ...

  9. Python金融大数据分析:用pandas处理金融时间序列数据的基础知识

    时间是阻止所有事情同时发生的力量.--雷•卡明斯 本节使用的是以CSV文件形式在本地存储的金融数据集形式为本地存储的CSV文件.从技术上讲,CSV文件是包含数据行结构的文本文件,其特征是以逗号分隔单个 ...

最新文章

  1. Rancher 2.2.2 发布,优化 Kubernetes 集群运维
  2. 使用Python+OpenCV+GAN实现车牌图像增强
  3. c++中vector的用法详解
  4. jzoj6342-[NOIP2019模拟2019.9.7]Tiny Counting【树状数组,容斥】
  5. html 美化input file,Input[type=”file”] 显示效果美化方法 | 智慧宫
  6. PX4 CMakeLists.txt 文件剖析
  7. tomcat 8集合memcache所需完整jar包_使用 zabbix 监控 tomcat(包含jvm监控)
  8. 启动“附近的人”功能,你有兴趣吗?
  9. 计算机组装考核记录表,计算机组装与维护考核方案(必修).doc
  10. Killer Names( 容斥定理,快速幂 )
  11. vue2.0自学教程(一):走进vue2.0大观园
  12. [附源码]Node.js计算机毕业设计大学生学科竞赛管理系统Express
  13. java2017期末考试,2017年java考试模拟试卷(2)
  14. PS一次性导出多倍图@1x、@2x、@3x
  15. 树莓派4B 声音传感器DO模块
  16. (ch9) Deep Learning for Anomaly Detection: A Survey
  17. lazarus生成Linux文件,Kylix的劲敌-开放源码的Lazarus[转]
  18. 基于SSM开发的电视节目管理系统 JAVA MySQL
  19. 专访计算机专业学生:大学里学不到实践经验
  20. php 正则 规则,PHP 正则表达式的语法规则

热门文章

  1. iphone12promax什么时候上市 iphone12promax是5g 双卡双待吗
  2. VA78L05V6DYE 24V转5V电源 限流电阻参数设计
  3. juicy-potato Windows提权之访问令牌操纵
  4. 搭建注册中心Eureka运行时报错:[ main] o.s.b.d.LoggingFailureAnalysisReporter :
  5. 【多载波系统】基于多载波系统分析等比合并EGC,最大比合并MRC,正交恢复合并ORC以及最小均方误差合并MMSE的matlab仿真
  6. 小虫记之iptables
  7. RISC-V基金会董事谭章熹:RISC-V,从边缘逐渐向中央扩展
  8. leetcode-java.T015_3Sum---给定一个n个元素的数组,是否存在a,b,c三个元素,使用得a+b+c=0,找出所有符合这个条件的三元组
  9. No CUDA runtime is found, using CUDA_HOME=‘/usr/local/cuda:/usr/local/cuda‘
  10. 数据可视化之matplotlib实战:plt.pie() 绘制分裂式饼图