Pandas向量化函数-分组相关-透视表

本文介绍了向量化函数在Python中的应用,包括np.vectorize和lambda表达式的使用,以及pandas库中数据分组(groupby)的聚合、转换和过滤功能,以及透视表在数据处理中的应用实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、向量化函数

向量化函数是指将输入参数为向量的函数,通过对向量进行操作,得到输出为向量的函数。在数学和计算机科学领域中,向量化函数通常用于加速计算和提高代码的可读性。

1.向量化函数展示

import pandas as pd
import numpy as np
df=pd.DataFrame({'a':[10,20,30],'b':[20,30,40]})
df
def avg_1(x,y):
    return (x+y)/2
avg_1(df['a'],df.b)

def avg_2(x,y):
    #如果x列传入20,就返回空
    if x==20: #此处报错,x是向量,20是标量,他们无法做判断
        return np.NaN
    return (x+y)/2
avg_2(df['a'],df.b)

此处报错原因其实就是向量和标量之间无法比较,需要通过以下向量化函数解决该问题,

方法一:np.vectorize(要被向量化的函数)

# 6. 使用 np.vectorize 将函数向量化.
# 写法1: 通过 np.vectorize(要被向量化的函数名) 方式实现.
avg_2_mod_vec = np.vectorize(avg_2_mod)
avg_2_mod_vec(df['a'], df['b'])

方法二:装饰器方式,即在那个有问题的函数的上一行@np.vectorize即可

#方法二: 通过装饰器方式实现,再要被向量化函数的上加上@np.vectoriz
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值