python神器pandas_Python数据处理神器,pandas入门必需理解的核心内容

在 Python 中做处理数据,那么必须要使用 pandas ,否则你根本做不到'人生苦短,我学Python'。

最近发生了一件小事情,让我意识到许多人没有系统掌握 pandas 。我的一位同事在使用 pandas 处理一份数据时,总是忘记应该用 pandas 中的哪些方法做处理,每次都要到网上搜索一遍,而稍微复杂点的处理完全做不出来。

因此,本文介绍 pandas 的核心概念,每个概念配上形象的图表,让你深刻理解他们。日后你会发现这些概念会帮助你更快学会其他知识。

本文概要:

pandas 3大结构:DataFrame、Series、Index(MultiIndex)

在交互式环境下处理数据

就是一个表格

pandas 是以数据表格作为概念而做成的数据处理分析包,因此,通过表格形象去理解 pandas 是最适合不过的。

DataFrame

DataFrame 中文叫'数据帧',他以表格的形式来装载数据。DataFrame 是处理数据的起点。 比如,有如下一份 csv 文件,内容如下:

我们通过 pandas 把 csv 文件的数据加载为 DataFrame 。

import pandas as pd ,为了方便使用,一般习惯导入的时候,把 pandas 命名为 pd

pd.read_csv('data.csv') , 从 csv 加载数据到 DataFrame。其中有许多 pd.read_xxx 的方法,用于其他方式读取数据。

我们来看看 DataFrame 是什么样子的。

中间的区域叫 values ,因此我们可以通过 df.values 获取这个值区域的数组。

平常处理数据的过程中,一般不需要把这个值区域读取出来使用。下面会看到如何批量获取一列或一行数据。

Series

Series 叫'系列',上图从 DataFrame 输出可以看到其就是一个表格形式。以此类推,那么 Series 就是表格中的一列。

如图,这个 DataFrame 有3列,也就是有3个 Series 。

每个 Series 都有一些信息,比如,名字、值。

那怎么获取一列的数据?

通过 DataFrame['列名字'] 即可访问指定列 。本文重点是说明 pandas 的结构,而非代码实现。下一章会详细说明怎样高效灵活选择数据。

Index

Index 中文叫'索引',许多人都对 DataFrame 和 Series 很熟悉,但却忽视了 Index。这是许多复杂处理的基础。

细心的读者可能会注意到,在之前我们看到的 DataFrame 输出时,最左边竟然多出一列,csv 数据中根本没有这一列数据。 如下:

这多出来的一列就是 Index 。

由于我们是直接从 csv 中加载数据进来,而没有指定任何的列作为 Index ,因此 pandas 会默认生成从0开始的一段数值作为 Index 。

那么 Index 有啥作用? 之前在说道 Series 的时候,我们已经知道通过列名,可以让你方便获取一列数据。 同样地,Index 是为了让你方便获取一行数据。 如下:

df.loc[1,:] , 表示从 DataFrame 中获取行索引值是1的那一行数据。

不要以为只有行索引噢,其实我们之前通过列名字获取一列数据,同样是通过 Index 得到的。

看一下怎么通过行列索引定位一个数据:

通过 loc[行索引 , 列索引] ,即可定位一个数据重点:由于行和列索引都是 Index,因此我们只需要学会行索引的操作方式,那么同时就学会了列索引的操作方式。

可以设置指定的列作为索引:

通过 .set_index('名称') ,让'名称'列作为 Index 。

df.loc['西瓜',:] 现在可以通过正常的索引访问行数据

交互式环境

如果你用过 jupyter notebook ,那么相信你已经非常熟悉交互式环境。下面我演示如何在 vs code 中使用 jupyter 那种单元格式的交互环境。这功能需要启动 jupyter server,因此强烈建议你直接安装 Anaconda 环境。直接去官方网站下载 exe ,安装完成马上就有完整的 Python 环境。

使用 #%% ,用于划分每个单元格(cell)

我们可以单独运行任何一个 cell 里面的代码。

期间产生的变量都会一直保留。

在此环境下,你可以快速试验各种代码,因为 python 进程一直运行着,你会发现这种方式比起一次次启动 python 要快得多。如果你喜欢用 PyCharm ,那么这功能目前必需在专业版才可以使用。

你可能感兴趣的:(python神器pandas)