基于 Python 和 Pandas 的数据分析(1)
基于 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, 直接去官网https://www.python.org/下载一个最新版本, 并安装.
这里我先假设你已经安装了 python. 下一步, 打开终端执行
pip3 install pandas
pip3 install numpy
安装 pyton 相关包的方式有很多, 通过 pip 是最简单的方式.
关于编辑器, 选择自己顺手的就行, 我用的是 visual code.
下面就来通过一个简单的实操, 认识一下 dataframe.
首先, 做一些简单的引入:
import pandas as pd import datetime import 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 close date 2009-12-31 68.860001 68.110001 68.839996 68.190002 18852300.0 51.152096 2010-01-04 69.260002 68.190002 68.720001 69.150002 27809100.0 51.872231 2010-01-05 69.449997 68.800003 69.190002 69.419998 30174700.0 52.074772 2010-01-06 70.599998 69.339996 69.449997 70.019997 35044700.0 52.524845 2010-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 plt from matplotlib import style style.use('fivethirtyeight')
pyplot 是 matplotlib 基本的图形化模块. style 帮助我们快速建立图表. 然后可以用 style.use 来选择一种图形样式.
接下来, 我们可以这样做:
df['high'].plot() plt.legend() plt.show()
完整代码如下:
import pandas as pd import datetime from 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 的操作. 还会接触到更多关于可视化图形, 数据的输入输出形式, 初中级的数据分析和操作, 合并与组合数据等.
后面会持续更新, 有任何问题或者错误, 欢迎留言, 希望和大家交流学习.
推荐阅读
-
基于 Python 和 Pandas 的数据分析(1)
-
基于Python实现的微信好友数据分析
-
Python用pandas和matplotlib分析1949-2016年中国各省市历年GDP数据
-
Python Pandas DataFrame:查询数据or选择数据(selection)之loc,iloc,at,iat,ix的用法和区别
-
python数据分析-pandas模块基础知识(1)
-
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
-
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
-
快速介绍Python数据分析库pandas的基础知识和代码示例
-
python3 pandas 读取MySQL数据和插入的实例
-
Python数据分析库之pandas,你该这么学!No.1