写点什么

精选 22 个 pandas 实用函数

作者:Peter
  • 2022 年 2 月 26 日
  • 本文字数:2543 字

    阅读完需:约 8 分钟

精选22个pandas实用函数

公众号:尤而小屋

作者:Peter

编辑:Peter


大家好,我是 Peter~


今天小编又从 26 个字母中精选出 22 个 Pandas 常用的函数,将它们的使用方法简单介绍给大家,详细内容可以查看官网学习。


其中 o、y、z 没有相应的函数。之前写过一篇文章,可以参考学习:


精选23个Pandas常用函数



import pandas as pdimport numpy as np
复制代码

apply 函数

Pandas 中一个很实用的函数,下面模拟了一份数据:



我们分别将 python 的内置函数、自定义函数、匿名函数传给 apply 函数:




使用 Python 的匿名函数来进行传递:


between_time

start_time, end_time, include_start=NoDefault.no_default,include_end=NoDefault.no_default, inclusive=None, axis=None
复制代码


来自官网的案例:



如果在参数中,开始时间大于结束时间,则会呈现不同的结果:


contains 函数

针对 Series 中的包含字符信息:


drop_duplicates 函数

删除数据中的重复值;可以选择根据某个或者多个字段来删除。


在删除数据的时候,默认保留的是第一条重复的数据,我们可以通过参数 keep 来指定保留最后一条


expanding 函数

这是一个窗口函数,实现的是一种类似累计求和的功能


DataFrame.expanding(  min_periods=1,   center=None,   axis=0,   method='single')
复制代码


  • min_periods:每个窗口最少包含的观测值数量,小于该数量的窗口结果为 NA。值可以是 int,默认 None。offset 情况下,默认为 1

  • center:把窗口的标签设置为居中,布尔型,默认 False,居右

  • axis:默认为 0,对列进行计算

  • method:single 或者 table


模拟了一份数据:



分别指定 1-2-3 不同的窗口数:



我们发现:当窗口数大于前面的记录数,则累计和用 NaN 表示

filter 函数

用来进行数据的过滤操作


  • items:表示包含的字段

  • regex:表示使用正则



ge 函数

进行比较的一个函数:ge 表示 greater equal


hist 函数

pandas 内置的绘制直方图的函数


df4 = pd.DataFrame({    'length': [1.5, 0.5, 1.2, 0.9, 3],    'width': [0.7, 0.2, 0.15, 0.2, 1.1]    }, index=['pig', 'rabbit', 'duck', 'chicken', 'horse'])
hist = df4.hist(bins=3)
复制代码


iterrows 函数

iterrows 函数用于对 DataFrame 进行迭代循环


join 函数

join 函数用于合并不同的 DataFrame



kurtosis 函数

用于查找一组数据中的峰度值


kurtosis(axis=index(0) or columns(1),          skipna=True,          level=None,          numeric_only=None,          **kwargs)
复制代码


  • axis:要应用的函数的轴。

  • skipna:计算结果时排除 NA /null 值。

  • level:如果轴是 MultiIndex(分层),则沿特定级别计数,并折叠成标量。

  • numeric_only:仅包括 float,int,boolean 列。

  • **kwargs:要传递给函数的其他关键字参数



如果给定的数据中存在缺失值,可以使用参数 skipna 直接跳过:


s1 = pd.Series([10,None,16,14,30,None])s1
复制代码


0    10.01     NaN2    16.03    14.04    30.05     NaNdtype: float64
复制代码


s1.kurtosis(skipna=True)
2.646199227619398
复制代码

last 函数

这是一个用在基于时间数据选择上的函数


i = pd.date_range('2018-04-09', # 起始日期                  periods=4,  # 周期                  freq='2D')  # 频率、间隔i
复制代码


DatetimeIndex(['2018-04-09', '2018-04-11', '2018-04-13', '2018-04-15'], dtype='datetime64[ns]', freq='2D')
复制代码



注意:在这里返回的日历中 3 个日的数据,而不是数据中的 3 行记录。13-14-15 刚好是 3 天

max/min/mean/median

4 个基于统计概念的函数:最大值、最小值、均值、中位数


nlargest 函数

选择前 n 个的数据,其语法如下:


nlargest(n, columns, keep='first')
复制代码


  • n:整数

  • columns:根据一个或者多个字段筛选

  • keep:选择 first、last、all;默认是 first


下面的例子来自官网:


df7 = pd.DataFrame({  'population': [59000000, 65000000, 434000,434000,                  434000, 337000, 11300,11300, 11300],  'GDP': [1937894, 2583560 , 12011, 4520,           12128,17036, 182, 38, 311],  'alpha-2': ["IT", "FR", "MT", "MV", "BN",              "IS", "NR", "TV", "AI"]},  index=["Italy", "France", "Malta",         "Maldives", "Brunei", "Iceland",         "Nauru", "Tuvalu", "Anguilla"])# 记录每个国家的人口数、GDP和名称2位大写df7
复制代码



keep 参数在不同取值下的结果:


pop 函数

表示删除某个属性或者字段信息


quantile 函数

quantile 就是分位数的意思,函数具体的语法规则为:


DataFrame.quantile(    q=0.5,      axis=0,     numeric_only=True,    interpolation=’linear’)
复制代码


  • q : 数字或者是类列表,范围只能在 0-1 之间,默认是 0.5,即中位数-第 2 四分位数

  • axis :计算方向,0-index, 1-columns,默认为 0

  • numeric_only:只允许是数值型数据

  • interpolation(插值方法):可以是 {‘linear’, ‘lower’, ‘higher’, ‘midpoint’, ‘nearest’}之一,默认是 linear。


reset_index 函数

reset 就是重置的含义,index 就是行索引;连起来就是重置行索引


df9 = pd.DataFrame({"fruit":["苹果","香蕉","橙子","橙子","苹果","橙子"],                   "amount":[100,200,130,150,88,40]})df9
复制代码



当我们统计每种水果的总销售额,是否使用 reset_index 函数的不同效果:


select_dtypes 函数

根据字段类型来筛选数据,可以包含或者排除一个或者多个字段类型的数据。


下面是官网的案例,稍作修改:生成了 3 个不同数据类型的字段



1、包含字段类型



2、排除字段类型


take 函数

也是选择数据的一个函数,具体语法为:


take(indices, axis=0, is_copy=None, **kwargs)
复制代码


  • indices:选择位置:数组或者切片

  • axis:选择的轴,0-index,1-column,默认是 0

  • is_copy:是否返回副本;从 Pandas1.0 开始



下面是多个例子:




以第一个例子来解释,指定数据的记录为 0 和 4。表示取出 df10 中的第 1 条和第 5 条数据(索引从 0 开始),而不是看我们自定义的索引号。

update 函数

更新某个 DataFrame 数据框;模拟两个数据:



第一次更新的结果:



如果用于更新的数据中存在空值,则保持原来的数据不变


var 函数

用于求一组数据的方差


where 函数

用于查找满足条件的数据


w = pd.Series(range(5))w
复制代码


0    01    12    23    34    4dtype: int64
复制代码


# 满足条件的显示;不满足的用空值代替w.where(w>=2)
复制代码


0    NaN1    NaN2    2.03    3.04    4.0dtype: float64
复制代码


# 不满足的用8替代w.where(w>=2, 8)
复制代码


0    8  # 8代替1    82    23    34    4dtype: int64
复制代码


发布于: 2022 年 02 月 26 日阅读数: 19
用户头像

Peter

关注

志之所趋,无远弗届,穷山距海,不能限也。 2019.01.15 加入

还未添加个人简介

评论

发布
暂无评论
精选22个pandas实用函数