数据专家最常使用的 10 大类 Pandas 函数 ⛵

语言: CN / TW / HK

highlight: a11y-dark

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第17天,点击查看活动详情

Python具有极其活跃的社区和覆盖全领域的第三方库工具库,近年来一直位居编程语言热度头部位置,而数据科学领域最受欢迎的python工具库之一是 Pandas。随着这么多年来的社区高速发展和海量的开源贡献者,使得 pandas 几乎可以胜任任何数据处理工作。

Pandas的功能与函数极其丰富,要完全记住和掌握是不现实的(也没有必要),资深数据分析师和数据科学家最常使用的大概有二三十个函数。在本篇内容中,ShowMeAI 把这些功能函数总结为10类。熟练掌握它们,你就可以轻松解决80% 以上的数据处理问题。

也推荐大家阅读ShowMeAI针对数据分析编写的教程和速查表,快速成为数据洞察高手! - 图解数据分析:从入门到精通系列教程 - 数据科学工具库速查表 | Pandas 速查表

💡 1.读取数据

我们经常要从外部源读取数据,基于不同的源数据格式,我们可以使用对应的 read_*功能:

  • read_csv:我们读取CSV格式数据时使用它。这个函数的使用注意点包括 header(是否有表头以及哪一行是表头), sep(分隔符),和 usecols(要使用的列/字段的子集)。
  • read_excel:读取Excel格式文件时使用它。这个函数的使用注意点包括 sheet_name(哪个表)和标题。
  • read_pickle:读取pickle格式存储的文件时使用,这个格式的优势是比 CSV 和 Excel快很多。
  • read_sas: 我经常使用这个功能,因为我曾经使用 SAS 来处理数据。

💡 2.写入数据

处理完数据后,我们可能会把处理后的DataFrame保存下来,最常用的文件写入函数如下:

  • to_csv: 写入 CSV 文件。 注意:它不保留某些数据类型(例如日期)。 很多情况下我们会将参数索引设置为False,这样就不用额外的列来显示数据文件中的索引。
  • to_excel: 写入 Excel 文件。
  • to_pickle:写入pickle文件。这是建议的写入格式,读写的速度都非常快。

💡 3.数据概览

将数据成 DataFrame 格式后,我们最好对数据有一个初步的了解,以下是最常用到的几个数据概览函数,能提供数据的基本信息。

  • head:返回前几行,通常用于检查数据是否正确读取,以及了解数据字段和形态等基本信息。
  • tail:检查最后几行。在处理大文件时,读取可能不完整,可以通过它检查是否完整读取数据。
  • info:数据集的总体摘要:包括列的数据类型和内存使用情况等信息。
  • describe:提供数据集的描述性摘要(比如连续值的统计信息、类别型字段的频次信息等)。
  • shape: 行数和列数(注意,这是Dataframe的属性,而非函数)。

💡 4.数据排序

我们经常需要对数据进行排序,Dataframe有一个重要的排序函数。

  • sort_values:通过指定列名对数据进行排序,可以调整升序或者降序规则。

💡 5.处理重复

我们手上的数据集很可能存在重复记录,某些数据意外两次输入到数据源中,清洗数据时删除重复项很重要。 以下函数很常用:

  • duplicated: 识别DataFrame中是否有重复,可以指定使用哪些列来标识重复项。
  • drop_duplicates:从 DataFrame 中删除重复项。一般建议大家先使用 duplicated检查重复项,确定业务上需要删除重复项,再使用这个函数。

💡 6.处理缺失值

现实数据集中基本都会存在缺失值的情况,下面这些函数常被用作检查和处理缺失值。

  • isnull:检查您的 DataFrame 是否缺失。
  • dropna: 对数据做删除处理。注意它有很重要的参数how(如何确定观察是否被丢弃)和 thred(int类型,保留缺失值的数量)。
  • fillna: 用指定的方法填充缺失值,例如向前填充 ( ffill)。

💡 7.数据处理

一个字段可能包含很多信息,我们可以使用以下函数对字段进行数据处理和信息抽取:

  • map:通常使用map对字段进行映射操作(基于一些操作函数),如 df[“sub_id”] = df[“temp_id”].map(lambda x: int(x[-4:])).
  • apply:通过多列的数据创建新的字段,在创建新列时经常需要指定 axis=1

💡 8.数据透视

Dataframe有 2 种常见数据:

  • 『宽』格式,指的是每一行代表一条记录(样本),每一列是一个观测维度(特征)。
  • 『长』格式,在这种格式中,一个主题有多行,每一行可以代表某个时间点的度量。

我们会在这两种格式之间转换。

  • melt:将宽表转换为长表。 注意:重要参数id_vars(对于标识符)和 value_vars(其值对值列有贡献的列的列表)。
  • pivot:将长表转换为宽表。注意:重要参数index(唯一标识符), columns(列成为值列),和 values(具有值的列)。

💡 9.合并数据集

我们对多个数据集Dataframe合并的时候,可能用到下列的函数(包括表关联和拼接)。

  • merge:基于某些字段进行表关联。重要的参数包括 on(连接字段),how(例如内连接或左连接,或外连接),以及 suffixes(相同字段合并后的后缀)。
  • concat:沿行或列拼接DataFrame对象。当我们有多个相同形状/存储相同信息的 DataFrame 对象时,它很有用。

💡 10.分组统计

我们经常会需要对数据集进行分组统计操作,常用的函数包括:

  • groupby:创建一个 GroupBy 分组对象,可以基于一列或多列进行分组。
  • mean:您可以在 GroupBy 分组对象上调用 mean 来计算均值。其他的常用统计信息包括标准差std
  • size: 分组的频率
  • agg:聚合函数。包括常用的统计方法,也可以自己定义。

参考资料

「其他文章」