image.png
说到python与数据分析,那肯定少不了pandas的身影,本文希望通过分析经典的NBA数据集来系统的全方位讲解pandas包,建议搭配IDE一遍敲一边读哦。话不多说,开始吧!
目录
安装与数据介绍
安装与配置
检查数据
探索性分析
pandas数据结构
series对象
dataframe对象
访问series元素
使用索引
使用.loc与.iloc
访问dataframe元素
使用索引
使用.loc与.iloc
查询数据集
分类和汇总数据
对列进行操作
指定数据类型
数据清洗
数据可视化
一、安装与数据介绍
pandas的安装建议直接安装anaconda,会预置安装好所有数据分析相关的包,当然也可以使用pip安装。
$
既然是数据分析就肯定选择jupyter notebook
$ pip install jupyter
接下来就可以进入python使用pandas对数据进行一些探索性的分析,将数据保存在工作目录,然后使用pd.read_csv()函数读取。
>>> import pandas as pd>>> nba = pd.read_csv("nba_all_elo.csv")>>> type(nba)
再看看一共有多少数据
>>> len(nba)126314>>> nba.shape(126314, 23)
现在我们知道数据集中有126,314行和23列。但是,如何确定数据集包含NBA的哪些统计数据?可以使用以下内容查看前五行.head():
>>> nba.head()
image
在jupyter notebook中可以看到,一共有23列变量,其中因为列数太多被隐藏了一部分,那么怎样可以看到这些变量呢
>>> pd.set_option("display.max.columns", None)
可以看到部分数据小数点后面跟了6位,而对于分析来说并没有必要,所以我们调整为小数点后两位
>>> pd.set_option("display.precision", 2)
检查数据
之前已经使用Pandas Python库导入了CSV文件,并首先查看了数据集的内容。到目前为止,我们仅看到了数据集的大小及前几行数据。接下来我们来系统地检查数据。
使用以下命令显示所有列及其数据类型.info():
>>> nba.info()
image
既然已经了解了数据集中的数据类型,现在该概述每个列包含的值了。可以使用.describe():
>>> nba.describe()
image
.describe()默认情况下仅分析数字列,但是如果使用include参数,则可以提供其他数据类型:
>>> import numpy as np>>> nba.describe(include=np.object)
探索性分析
接下来接着进行对数据集的探索性相关分析
>>> nba["team_id"].value_counts()BOS 5997NYK 5769LAL 5078...SDS 11>>> nba["fran_id"].value_counts()Name: team_id, Length: 104, dtype: int64Lakers 6024Celtics 5997Knicks 5769...Huskies 60Name: fran_id, dtype: int64
可以看到含有队名"Lakers"的队伍打了6024场比赛,但其中只有5078场是洛杉矶湖人队的比赛。找出另一个"Lakers"团队是哪个
>>> nba.loc[nba["fran_id"] == "Lakers", "t