Pandas 中如何用列名列表批量传递多列数据给函数
发布时间 - 2025-12-27 00:00:00 点击率:次本文介绍在 pandas 中通过列名列表动态选取多列,并利用 `apply()` 和解包操作符 `*` 将其高效传入自定义函数的方法,避免手动书写冗长的列引用,提升代码可维护性与扩展性。
在使用 Pandas 进行数据处理时,常需将多列数据联合传入自定义函数(如特征工程、复合计算等)。当列数较多(例如 A–J 共 10 列)时,逐个写 x.A, x.B, ..., x.J 不仅繁琐,还易出错且难以维护。理想
方案是:先将列名存入列表,再统一提取并解包传参。
核心技巧在于两点:
- 使用 df[cols] 按列名列表索引子 DataFrame(返回按指定顺序排列的列);
- 在 apply() 的 lambda 中,用 *x 将每行 Series 解包为位置参数,自动匹配函数形参。
以下为完整示例:
import pandas as pd
import numpy as np
np.random.seed(26)
df = pd.DataFrame(np.random.randint(10, size=(3, 3)), columns=list('ABC'))
print("原始数据:")
print(df)
# A B C
# 0 5 6 0
# 1 1 6 3
# 2 0 4 2
def myfunction(a, b, c):
return (a, b, c) # 示例:返回元组
cols = ['A', 'B', 'C'] # ✅ 列名列表,支持任意长度和顺序
df['out'] = df[cols].apply(lambda x: myfunction(*x), axis=1)
print("\n添加计算结果列:")
print(df)
# A B C out
# 0 5 6 0 (5, 6, 0)
# 1 1 6 3 (1, 6, 3)
# 2 0 4 2 (0, 4, 2)⚠️ 注意事项:
- 函数形参顺序必须与 cols 列表中列名的顺序严格一致;
- df[cols].apply(..., axis=1) 返回的是 Series,每行 x 是一个 pd.Series,*x 会按索引顺序(即 cols 顺序)解包其值;
- 若函数需处理缺失值,建议在函数内部增加 pd.isna() 判断,或提前用 dropna(subset=cols) 过滤;
- 对于性能敏感场景,优先考虑向量化操作(如 np.where, pd.cut)或 numba 加速,apply(axis=1) 在大数据量下较慢。
该方法简洁、通用、可读性强,是 Pandas 高级用法中的实用范式。
# 大数据
# app
# 排列
# pandas
# Lambda
# 形参
# 自定义
# 的是
# 是一个
# 将其
# 较多
# 数据处理
# 先将
# 较慢
# 两点
# 顺序排列
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
如何快速查询网站的真实建站时间?
高防服务器:AI智能防御DDoS攻击与数据安全保障
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何获取上海专业网站定制建站电话?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何在阿里云服务器自主搭建网站?
Laravel怎么使用artisan命令缓存配置和视图
网站页面设计需要考虑到这些问题
SQL查询语句优化的实用方法总结
网站制作报价单模板图片,小松挖机官方网站报价?
魔方云NAT建站如何实现端口转发?
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
北京企业网站设计制作公司,北京铁路集团官方网站?
Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件
如何在IIS中新建站点并解决端口绑定冲突?
Laravel如何处理表单验证?(Requests代码示例)
如何在服务器上配置二级域名建站?
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
如何用IIS7快速搭建并优化网站站点?
英语简历制作免费网站推荐,如何将简历翻译成英文?
Bootstrap整体框架之CSS12栅格系统
如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤
如何批量查询域名的建站时间记录?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
Laravel如何保护应用免受CSRF攻击?(原理和示例)
如何获取免费开源的自助建站系统源码?
如何在IIS7上新建站点并设置安全权限?
轻松掌握MySQL函数中的last_insert_id()
*服务器网站为何频现安全漏洞?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
高防网站服务器:DDoS防御与BGP线路的AI智能防护方案
Laravel API资源类怎么用_Laravel API Resource数据转换
高防服务器租用如何选择配置与防御等级?
php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】
大型企业网站制作流程,做网站需要注册公司吗?
详解Huffman编码算法之Java实现
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Laravel如何使用Livewire构建动态组件?(入门代码)
java中使用zxing批量生成二维码立牌
佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
Laravel怎么为数据库表字段添加索引以优化查询

