Fork me on GitHub

深入浅出pandas第一版

Pandas连载文章

一直在坚持更新pandas相关的文章,有使用技巧,也有相关的案例。从4月24号到现在,目前已经更新21篇。

下面来介绍一下每篇文章的具体内容,希望对大家有所帮助,也加深对pandas这个库相关知识点的理解和印象~

第1篇:爆炸函数explode

介绍的是爆炸函数explode的使用:如何根据左边的表格数据统计出右边的结果?

第2篇:Pandas系列之Series数据类型

Pandas种有两种数据类型:Series和DataFrame,第2篇介绍的是Series类型。

第3篇:创建DataFrame:10种方式任你选

第3篇介绍的是DataFrame数据类型,主要是10种方式教你如何创建DataFrame类型数据。

  • 创建空DataFrame
  • 手动创建
  • 读取文件创建
  • 读取数据库创建
  • Python字典创建
  • Python列表创建
  • Python元组创建
  • 通过Series数据创建
  • numpy数组创建
  • 通过构建器创建

写完后发现,还有一种常见的创建方式:通过剪贴板read_clipboard

第4篇:各种骚气的Pandas取数操作

这是如何从pandas的Series或者DataFrame中(主要是DataFrame)取数的第一篇。

  • 查看头尾数据
  • 随机取数
  • 数值型数据的筛选等

第5篇:赞!五花八门的Pandas筛选数据

这篇是pandas数据筛选的第2篇,主要介绍的方法是:

  • 表达式取数
  • query、evel
  • filter
  • where、mask

第6篇:最后一篇:玩转Pandas取数

pandas取数的最后一篇,主要介绍的函数是:

  • iloc和loc(面试题)
  • at和iat(面试题)
  • any和all(面试题)

第7篇:数据处理基石:数据探索

当我们生成或者导入了数据之后,通过数据的探索工作能够快速了解和认识数据基本信息,比如数据中字段的类型、索引、最值、缺失值等,可以让我们对数据的全貌有一个初步了解。

数据探索的工作包含:数据样本大小、数据形状shape、数据类型、缺失值等基本数据情况。

第8篇:Pandas数据类型操作

Pandas中的每个字段都是有自己的数据类型,在进行后续的处理之前我们需要先清楚每个字段是什么数据类型。

本篇文章总结了Pandas中进行数据类型转换的三种基本方法,最后介绍了如何基于数据类型来进行取数:

  • 使用astype()函数进行强制类型转换
  • 通过自定义函数来进行数据类型转换
  • 使用Pandas提供的函数如to_numeric()、to_datetime()等进行转化
  • select_dtypes函数的使用(取数方法)

第9篇:图解Pandas的groupby机制

介绍的是Pandas中的分组机制:groupby。

这个pandas中分组重要的一个机制,Peter经常使用~

第10篇:图解Pandas的排名rank机制

介绍的是Pandas中的排名rank机制,类似于SQL中的3个窗口函数:row_number、rank、dense_rank

  • row_number:顺序排名,rank函数的中的method=first
  • rank:跳跃排名,rank函数的中的method=min
  • dense_rank:密集排名,rank函数的中的method=dense

第11篇:图解Pandas的排序机制sort_values

有了排名,肯定是少不了排序机制的。本篇文章重点是介绍了排序机制sort_values

1
2
3
4
5
6
7
8
9
DataFrame.sort_values(
by,
axis=0,
ascending=True,
inplace=False,
kind='quicksort',
na_position='last', # last,first;默认是last
ignore_index=False,
key=None)

参数的具体解释为:

  • by:表示根据什么字段或者索引进行排序,可以是一个或多个
  • axis:排序是在横轴还是纵轴,默认是纵轴axis=0
  • ascending:排序结果是升序还是降序,默认是升序
  • inplace:表示排序的结果是直接在原数据上的就地修改还是生成新的DatFrame
  • kind:表示使用排序的算法,快排quicksort,,归并mergesort, 堆排序heapsort,稳定排序stable ,默认是 :快排quicksort
  • na_position:缺失值的位置处理,默认是最后,另一个选择是首位
  • ignore_index:新生成的数据帧的索引是否重排,默认False(采用原数据的索引)
  • key:排序之前使用的函数

第12篇:图解Pandas的缺失值处理

数据总是不会那么地完美,可能会存在缺失值。本篇文章介绍了如何处理pandas中存在的缺失值。处理pandas中使用的几个常见函数:

  • df.isnull()、df.notnull():两个函数互为取反
  • df.isna():等同于df.isnull()
  • df.dropna():删除缺失值
  • df.fillna():填充缺失值

第13篇:图解Pandas重复值处理

数据中存在重复值也是常见情况,我们如何去重并且取出我们需要的数据是本篇文章的重点。Pandas中处理重复值主要使用的是两个函数:

  • duplicated():判断是否有重复值
  • drop_duplicates() :删除重复值

第14篇:图解Pandas的数据合并merge

pandas中的合并函数merge是一个功能十分强大的函数,可以实现类似SQL中的各种join连接功能。

这也是面试题合并函数的答案之一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
pd.merge(
left, # 待合并的2个数据框
right,
how='inner', # ‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’
on=None, # 连接的键,默认是相同的键
left_on=None, # 指定不同的连接字段:键不同,但是键的取值有相同的内容
right_on=None,
left_index=False, # 根据索引来连接
right_index=False,
sort=False, # 是否排序
suffixes=('_x', '_y'), # 改变后缀
copy=True,
indicator=False, # 显示字段来源
validate=None)

参数的具体解释为:

  • left、right:待合并的数据帧

  • how:合并的方式,有5种:{‘left’, ‘right’, ‘outer’, ‘inner’, ‘cross’}, 默认是 ‘inner’

    1、 left:左连接,保留left的全部数据;right类似;类比于SQL的left join 或者right join

    2、outer:全连接功能,类似SQL的full outer join

    3、inner:交叉连接,类比于SQL的inner join

    4、cross:创建两个数据帧DataFrame的笛卡尔积,默认保留左边的顺序

  • on:连接的列属性;默认是两个DataFrame的相同字段

  • left_on/right_on:指定两个不同的键进行联结

  • left_index、right_index:通过索引进行合并

  • suffixes:指定我们自己想要的后缀

  • indictor:显示字段的来源

第15篇:图解Pandas数据合并:concat、join、append

除了merge,pandas中还有其他的合并函数:concat、join、append。

这也是面试题的答案一部分

第16篇:图解Pandas的轴旋转函数:stack和unstack

stack和unstack两个函数是实现pandas中数据的轴旋转问题,也就是行列转换的问题。

  • stack函数的主要作用是将原来的列转成最内层的行索引,转换之后都是多层次索引
  • unstack函数是将最内层的行索引变成列

这也是面试题的答案**

第17篇:开启Pandas进阶:图解Pandas透视表、交叉表

从这篇文章开始,重点写pandas中的进阶部分内容,透视表和交叉表是第一个知识点。

1
2
3
4
5
6
7
8
9
10
11
12
13
pd.pivot_table(
data, # 制作透视表的数据
values=None, # 值
index=None, # 行索引
columns=None, # 列属性
aggfunc='mean', # 使用的函数,默认是均值
fill_value=None, # 缺失值填充
margins=False, # 是否显示总计
dropna=True, # 缺失值处理
margins_name='All', # 总计显示为All
observed=False,
sort=True # 排序功能 版本1.3.0才有
)

第18篇:3个Pandas宝藏函数:map+apply+applymap

  • map:能够满足绝大部分Series类型数据的同一个操作
  • apply:map的功能都能够实现,比较灵活,能够传入各种复杂或者自带的函数进行数据处理
  • applymap:对DataFrame中的数据执行同一个操作,使用较少

apply真的是非常强大

第19篇:对比SQL,学习Pandas操作

从14种方式,34个案例,对比SQL来学习pandas数据操作

  1. 查询全部数据
  2. 前N条
  3. 后N条
  4. 中间段数据
  5. 部分字段
  6. 指定等式条件
  7. 指定不等式条件
  8. 取反操作
  9. 指定多个条件
  10. 指定计算等式
  11. 模糊查询
  12. 排序
  13. 分组统计
  14. 取别名

第20篇:图解Pandas的移动函数shift

本篇文章主要是介绍了Pandas中的一个重要函数:shift。然后通过一个电商的复购案例数据详细讲解了如何使用移动函数。这个案例综合性很强,使用了很多的pandas函数,建议自己认真操作,并且收藏之后反复练习:

  • 分组统计:groupby
  • 过滤筛选数据:query
  • 排序函数:sort_values
  • 合并函数:concat
  • 字段重命名:rename
  • 缺失值删除:dropna
  • 宝藏函数:apply

第21篇:图解Pandas的assign函数

assign函数主要是用来生成新的列,它的参数只有一个:DataFrame.assign(**kwargs)。

1
**kwargs: dict of {str: callable or Series}

关于参数的几点说明:

  • 列名是关键字keywords
  • 如果列名是可调用的,那么它们将在DataFrame上计算并分配给新的列
  • 如果列名是不可调用的(例如:Series、标量scalar或者数组array),则直接进行分配

最后,这个函数的返回值是一个新的DataFrame数据框,包含所有现有列和新生成的列


总结

上面便是目前关于pandas全部更新的文章。从数据如何创建、如何筛选数据、如何进行数据探索、多种数据处理方式(缺失值、重复值、数据排名排序等)到透视表的制作、多个宝藏函数的使用,从基础入门到知识点的慢慢进阶。群友在面试中被问到的问题,Peter基本上都已经写成了上面的详细文章,如果有认真阅读,问题不大!

希望这些文章能够帮助读者快速入门和掌握pandas库的使用,学到更多的数据处理技巧。Pandas的文章Peter会继续更新下去,如果有任何问题,欢迎留言和联系Peter。

本文标题:深入浅出pandas第一版

发布时间:2021年09月22日 - 11:09

原始链接:http://www.renpeter.cn/2021/09/22/%E6%B7%B1%E5%85%A5%E6%B5%85%E5%87%BApandas%E7%AC%AC%E4%B8%80%E7%89%88.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Coffee or Tea