01写在前面

大家好,我是阳哥,欢迎来到「Python数据之道」。

本次是《图解Pandas》系列图文内容的 第 08 篇,主要介绍 Pandas 中常见的数据筛选

本文是付费阅读文章,付费阅读内容包括《图解Pandas》图文干货内容、可以在电脑端观看的视频以及配套的源代码等。

此外,为避免各种不必要的麻烦,微信没有退款机制,付费前请谨慎。

Pandas 是 Python数据分析中用的最多的工具,为了大家能够更好地学习 Pandas,阳哥开始制作一系列 《图解Pandas》 的内容。

《图解Pandas》 最主要的目标,是以视频图解、动态图片等方式呈现,拆解 Pandas 在数据处理过程中的主要知识点,以便大家能进一步了解 Pandas 的使用,形象地介绍 Pandas,进而使大家喜欢上 Pandas 这个工具。

《图解Pandas》图文专题,最新的内容可以点击下面的图片进行查看。

0468fcc54374d2690ce6797d7675fc57.jpeg

在本文编写时,《图解Pandas》系列已发布的图文如下:

图文链接对应的视频编号
《图解Pandas》内容框架介绍-
图文01-数据结构介绍001
图文02-创建数据对象002
图文03-读取和存储Excel文件003、004
图文04-常见的数据访问005
图文05-常见的数据运算006、007、008
图文06-常见的数学计算009、010
图文07-常见的数据统计011、012、013、014、015

本次主要介绍 Pandas 中常见的数据筛选 ,内容框架如下:

14ec107118ee5e40f586e49e8461793e.jpeg
主要内容

该主题包括 13 期视频,在微信视频号「Python数据之道」中发布的对应视频编号为 016028,大家可以前往观看:

注:本文发布时,在视频号中可以观看视频 016024,后续将发布 025028

在本文后面内容中可以同时观看视频 016028

扫描下面的二维码,关注视频号,可以观看《图解Pandas》已发布的所有视频以及及时推送最新的视频:

51dc644854954b4bff4e3a16a8a26b11.jpeg

02常见的数据筛选

Python环境

开始之前,按照惯例先介绍下本次内容涉及的Python环境,如下:

  • Python 3.8

  • Pandas 1.4.1

  • numpy 1.22.3

我是在 jupyter notebook 中运行代码的,首先引入相关 Python 库:

import pandas as pd
import numpy as np

print(f'pandas version:{pd.__version__}')
print(f'numpy version:{np.__version__}')

# pandas version:1.4.1
# numpy version:1.22.3

创建数据

咱们先来创建一个dataframe,也就是“数据框”。

关于创建数据对象的详细介绍,大家可以观看 「图解Pandas」系列的第2期视频

创建 df 如下:

d = {
    "name": [ "Lemon", "Jack", "Peter","Emma","James"],
    "city": ["长沙", "上海", "深圳","北京","北京"],
    "a": [80, 90, 60,73,89],
    "b": [80, 75, 80,85,83],
    "c": [70, 75, 80,73,62],
}
df = pd.DataFrame(d,index=list('efghk'))
df
63bf73b9188961d4a390801cceea5c68.jpeg

来看看数据框“df”的数据结构,为5行5列,数值类型包括字符串和整型。后续,会根据需要在该数据框的基础上,创建其他的一些数据框。

数据筛选,是运用Pandas进行数据处理的一个重要方面,实现的方法也是多种多样, 这里汇总了Pandas中比较常见的数据筛选方法。

9e003efcc557c7a0e440eef91d0f629a.jpeg
主要内容

在内容介绍过程中,主要是针对数据框介绍各种方法的应用。同时,也需要知道,其中有不少方法,对于Series也是适用的。

获取头尾数据

在Pandas中,head()函数 和 tail()函数分别用来获取数据框的头尾数据。

先来看 head() 函数,是用来获取头部数据的,对于数据框,获取头部的数据行。这里获取了数据框前 2 行数据,如下:

4bbf91a10b03598c4b64b58cf7c4001d.jpeg

tail() 函数,是用来获取尾部数据的,对于数据框,获取尾部的数据行。这里获取了数据框最后2行数据,如下:

96a9c8183c97ebe26c4c9632ec604dcd.jpeg

head 函数 和 tail 函数,对于 Series 也是适用的。

head函数获取series最前面的两组数据,如下:

1a05306a026f6ba3c6e2cb76b6ce5548.jpeg

tail函数获取series最后面的两组数据,如下:

7e6ec8ef3448c4f98694de4cfb502996.jpeg

列数据的获取

对于数据框中列数据的获取,这里先分享几种最基础的方法。

df['name'] 的形式, 可以直接选取某列,其中 “name” 为列名称。如下:

921cbc72844c1be5fcc8b6e5fba2c6f2.jpeg

df.col 方法 (col为列名称),也可以实现列的选取,需要注意的是,用这种方法,列名称中不能有空格。如下:

d39fb0acca4cb5ab38d5a3e29e9e9938.jpeg

也可以用列表的方式,实现同时选取多列,这里选取了 "name" 和 "a" 两列,如下:

a5b15fbcb3424a966867ddf03e56d6ce.jpeg

对于数据框中列数据的获取,还可以使用 get函数,该函数有两个参数。

DataFrame.get(key, default=None)

其中 key 是 列名称,或者由列名称组成的列表。

这里设置 key 为 列名称,获取某列,如下:

158b0c9bb8022a4969805951127127cd.jpeg

设置key为列表,则可以获取某几列,这里获取 "name" 和 "a" 两列,如下:

3173569b15b747534daaecee8c819ecf.jpeg

需要注意下,如果列表中有数据框中不存在的列名称,则返回 default 参数的值,这里设置为 "error",由于 数据框df中没有列名称为"ab"的列,因此返回 "error" 。

如下:

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐