欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2024-01-02 10:47:40
基于 Python 和 Pandas 的数据分析(1) Pandas 是 Python 的一个模块(module), 我们将用 Python 完成接下来的数据分析的学习. Pandas 模块是一个高性能,高效率和高水平的数据分析库. 从本质上讲,它非常像操作电子表格的无头版本,如Excel. 我们所 ......

基于 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 的操作. 还会接触到更多关于可视化图形, 数据的输入输出形式, 初中级的数据分析和操作, 合并与组合数据等.

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





上一篇:

下一篇: