博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于 Python 和 Pandas 的数据分析(1)
阅读量:5817 次
发布时间:2019-06-18

本文共 3086 字,大约阅读时间需要 10 分钟。

基于 Python 和 Pandas 的数据分析(1)

Pandas 是 Python 的一个模块(module), 我们将用 Python 完成接下来的数据分析的学习. Pandas 模块是一个高性能,高效率和高水平的数据分析库.

从本质上讲,它非常像操作电子表格的无头版本,如Excel. 我们所使用的大部分的数据集都可以被转换成 dataframes(数据框架). 你可能对这个术语比较熟悉了, 它被广泛地用于很多语言. 但是如果你不熟悉, 可以看下我的解释: 一个 dataframe 就很像是一个仅有行和列组成的电子表格. 现在开始, 我们可以使用 Pandas 以光速对数据集进行一系列的操作. 

Pandas 也是可以与很多其他数据分析库兼容的, 比如用于机器学习的 Scikit-Learn, 用于图形绘制的 Matplotlib, NumPy 等. Pandas 的性能非常强大, 非常值得学习. 如果你在使用 excel 或者其他电子表格处理大量的计算任务, 那么通常需要1分钟或者1小时去完成某些工作, Pandas 将改变这一切. 

另一个好消息, 你可以很容易地载入/输出 xls 或者 xlsx 格式的文件. 所以即使你的老板还是习惯以往的格式, 你也可以轻松应对. Pandas 还同时兼容很多文本文件, 如 csv, xml, html 等.

如果你是初次接触 Python 语言, 没有关系, 我相信你一样可以继续下面的课程, 而且这个教程甚至可以作为你 Python 的一个初步入门教程.

如果你还没有安装 Python, 直接去官网, 并安装.

这里我先假设你已经安装了 Python. 下一步, 打开终端执行

pip3 install pandas
pip3 install numpy

安装 Pyton 相关包的方式有很多, 通过 pip 是最简单的方式.

关于编辑器, 选择自己顺手的就行, 我用的是 visual Code.

下面就来通过一个简单的实操, 认识一下 dataframe.

首先, 做一些简单的引入:

import pandas as pdimport datetimeimport pandas_datareader.data as web

这里, 我们使用了 "import pandas as pd". 这算是引入 Pandas 的通用用法. 接着, 我们引入 datetime, 我们会用这个包做一些关于时间的操作. 最后, 引入 "import pandas.io.data as web", 我们需要用这个从网上拉取数据.

start = datetime.datetime(2010, 1, 1) end = datetime.datetime.now()

这里, 我们创建了 start 和 end 两个变量, 它们都是 datatime 的对象. 我们会拉取从2010年1月1日到今天的数据. 下面我们就来创建一个 dataframe:

df = web.DataReader("XOM", "yahoo", start, end)

这行代码实现了从 yahoo API 拉取 XOM 的数据, 并赋值给变量 df. 把存储dataframe 的变量命名为 df, 并不是强制的, 但是是一种通用的方式, 可以让人从命名快速识别出这是一个 dataframe 的变量, 而无需追踪代码.

所以现在我们就获得了一个 dataframe, 那么我们要如何查看它的内容呢? 对, 我们可以用 print() 函数:

print(df)

目前是要求打印所有的数据, 终端显示的时候会省略掉中间部分的数据, 但是即便这样, 数据量依然很大. 所以, 大家一般都习惯只输出前5行数据:

print(df.head())

输出:

High        Low       Open      Close      Volume  Adj CloseDate2009-12-31  68.860001  68.110001  68.839996  68.190002  18852300.0  51.1520962010-01-04  69.260002  68.190002  68.720001  69.150002  27809100.0  51.8722312010-01-05  69.449997  68.800003  69.190002  69.419998  30174700.0  52.0747722010-01-06  70.599998  69.339996  69.449997  70.019997  35044700.0  52.5248452010-01-07  70.059998  69.419998  69.900002  69.800003  27192100.0  52.359821

这样就输出了前5行数据, 这有助于 debug, 并且可以查看整体的数据结构. 

以上就是我想带给大家的初步的入门介绍. 但是还有一件事: 数据可视化. 就像我前面提到的, Pandas 与很多其他的模块都有很好的兼容性, Matplotlib 就是其中一个. 大家可以在终端执行

pip3 install matplotlib

其实, 理论上装过 pandas, matplotlib 就应该已经自动安装了, 这里只是要大家再确认一下. 现在, 就可以在脚本的头部加上下面的代码:

import matplotlib.pyplot as pltfrom matplotlib import style style.use('fivethirtyeight')

Pyplot 是 matplotlib 基本的图形化模块. Style 帮助我们快速建立图表. 然后可以用 Style.use 来选择一种图形样式.

接下来, 我们可以这样做:

df['High'].plot() plt.legend() plt.show()

完整代码如下:

import pandas as pdimport datetimefrom pandas_datareader import data as web import matplotlib.pyplot as plt from matplotlib import style style.use('ggplot') start = datetime.datetime(2010, 1, 1) end = datetime.datetime(2015, 1, 1) df = web.DataReader("XOM", "yahoo", start, end) print(df.head()) df[['High']].plot() plt.legend() #其实可以省略 plt.show()

很棒! 以上就是对 Pandas 一个简单快速的介绍. 在这个整个系列教程中, 我将会带到更多的Pandas 的基础知识, 还有一些对 dataframe 的操作. 还会接触到更多关于可视化图形, 数据的输入输出形式, 初中级的数据分析和操作, 合并与组合数据等.

后面会持续更新, 有任何问题或者错误, 欢迎留言, 希望和大家交流学习.

转载于:https://www.cnblogs.com/rachelross/p/10376369.html

你可能感兴趣的文章
SSH中调用另一action的方法(chain,redirect)
查看>>
数据库基础
查看>>
表格排序
查看>>
关于Android四大组件的学习总结
查看>>
java只能的round,ceil,floor方法的使用
查看>>
由于无法创建应用程序域,因此未能执行请求。错误: 0x80070002 系统找不到指定的文件...
查看>>
新开的博客,为自己祝贺一下
查看>>
puppet任务计划
查看>>
【CQOI2011】放棋子
查看>>
采用JXL包进行EXCEL数据写入操作
查看>>
一周总结
查看>>
将txt文件转化为json进行操作
查看>>
线性表4 - 数据结构和算法09
查看>>
C语言数据类型char
查看>>
Online Patching--EBS R12.2最大的改进
查看>>
Binary Search Tree Iterator leetcode
查看>>
Oracle性能优化--DBMS_PROFILER
查看>>
uva-317-找规律
查看>>
Event事件的兼容性(转)
查看>>
我的2014-相对奢侈的生活
查看>>