使用Pandas做数据分析的时候,用的最多的功能恐怕就是对于数据集的索引,选组数据子集。Pandas库提供了很多非常实用的方法,了解并熟练使用这些方法而不是用for循环的方法将会事半功倍。在这一篇文章中,我们将着重介绍这些方法。
我们将使用2019年全国新能源汽车的销量数据作为演示数据,数据保存在一个csv文件中,读者可以点击下方下载按钮下载,也可以在GitHub仓库下载到 https://github.com/pythonlibrary/practice-pandas-skills.git
本篇文章中会使用到两个库pandas 和 numpy,确保它们都正确的安装,而工作环境则使用jupyter notebook,如果有需要学习如何搭建环境的,可以阅读 数据科学家的一种工作环境 – virtualenv和Jupyter Notebook。
文章中用于演示的代码也可以在前边提到的GitHub仓库中找到对应的notebook源文件,文件名为 index_select_data.ipynb
首先在notebook中导入pandas和numpy,按照常用习惯,pandas导入为pd,numpy导入为np
import pandas as pd
import numpy as np
1. 导入数据集
在这一节中,我们会将数据文件导入为pandas中的数据对象,同时针对这个数据对象,做一些基本的信息展示,方便我们理解我们将要工作的数据。
我们的原始数据文件为csv格式,因此可以快速的使用pandas提供的read_csv方法将csv文件导入为pandas的DataFrame,同时利用DataFrame对象的head方法查看前两行数据的内容。
df = pd.read_csv('NEV_sales.csv')
df.head(2)
head方法接收一个整数为参数,代表,我们想要获得的行数,默认为5行,这里我们获得了2行,可以看出,数据的索引(index)是数字,列(column)里边包含了品牌以及2019年从1月份到12月份的销售量。
为了后边演示,我们将利用df这个数据集再创建一个新的数据集名为df_brand_index,它跟df的区别是,它将使用品牌(brand)作为索引,列为2019年从1月份到12月份的销售量。我们使用set_index方法来实现。这次,我们使用跟head方法相对应的tail方法来查看df_brand_index和df的不同。
df_brand_index