社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

【Python】精选22个Pandas函数!

机器学习初学者 • 3 年前 • 413 次点击  

公众号:尤而小屋
作者:Peter
编辑:Peter

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

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

精选23个Pandas常用函数

import pandas as pd
import 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.50.51.20.93],
    'width': [0.70.20.150.21.1]
    }, index=['pig''rabbit''duck''chicken''horse'])

hist = df4.hist(bins=3)

iterrows函数

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

join函数

join函数用于合并不同的DataFrame

kurtosis函数

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

kurtosis(axis=index(0or 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.0
1     NaN
2     16.0
3    14.0
4    30.0
5     NaN
dtype: 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': [5900000065000000434000,434000
                 43400033700011300,1130011300],
  'GDP': [19378942583560 , 120114520
          12128,1703618238311],
  '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    0
1    1
2    2
3    3
4    4
dtype: int64
# 满足条件的显示;不满足的用空值代替
w.where(w>=2)
0    NaN
1    NaN
2    2.0
3    3.0
4    4.0
dtype: float64
# 不满足的用8替代
w.where(w>=28)
0    8  # 8代替
1    8
2    2
3    3
4    4
dtype: int64





    
往期精彩回顾




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131516
 
413 次点击