
本文介绍如何利用 pandas 和 numpy 高效地根据 dataframe 中“键”列的值,有条件地映射和处理多列数据。针对传统 `numpy.select` 逐列操作的低效性,教程将展示如何通过构建布尔掩码结合 `dataframe.where()` 方法实现矢量化操作,从而优化数据清洗和转换流程,将不符合条件的列值替换为指定标记(如 'na')。
在数据处理中,我们经常需要根据某一“键”列的值,有条件地修改或保留 DataFrame 中其他多列的数据。例如,当“键”列为 'key1' 时,我们可能只关心 'colA' 和 'colD' 的值,而其他列则应标记为无效。
以下是一个典型的场景及使用 numpy.select 的传统实现方式:
import pandas as pd
import numpy as np
# 创建示例 DataFrame
data = {
'key': ['key1', 'key2', 'key3', 'key1', 'key2'],
'colA': ['value1A', 'value2A', 'value3A', 'value4A', 'value5A'],
'colB': ['value1B', 'value2B', 'value3B', 'value4B', 'value5B'],
'colC': ['value1C', 'value2C', 'value3C', 'value4C', 'value5C'],
'colD': ['value1D', 'value2D', 'value3D', 'value4D', 'value5D']
}
df = pd.DataFrame(data)
# 传统方法:为每列单独应用 np.select
df['colA'] = np.select([df['key'] == 'key1'], [df['colA']], default= 'NA')
df['colD'] = np.select([df['key'] == 'key1'], [df['colD']], default= 'NA')
df['colB'] = np.select([df['key'] == 'key2'], [df['colB']], default= 'NA')
df['colC'] = np.select([df['key'] == 'key3'], [df['colC']], default= 'NA')
print("使用 np.select 的结果:")
print(df)输出结果:
使用 np.select 的结果:
key colA colB colC colD
0 key1 value1A NA NA value1D
1 key2 NA value2B NA NA
2 key3 NA NA value3C NA
3 key1 value4A NA NA value4D
4 key2 NA value5B NA NA这种方法虽然能达到目的,但存在明显局限性:
蚂蚁PPT
AI在线智能生成PPT
113
查看详情
为了解决这些问题,我们需要一种更高效、更具通用性的矢量化方法。
Pandas 提供了强大的工具来构建和应用布尔掩码,实现对 DataFrame 的高效条件性修改。核心思想是创建一个与原始 DataFrame 形状相似的布尔矩阵,该矩阵的 True 值指示应保留原始数据,False 值指示应替换为默认值(如 'NA')。
首先,定义我们的映射规则,即哪个 key 对应哪些列是有效的:
import pandas as pd
import numpy as np
# 重新创建原始 DataFrame
data = {
'key': ['key1', 'key2', 'key3', 'key1', 'key2'],
'colA': ['value1A', 'value2A', 'value3A', 'value4A', 'value5A'],
'colB': ['value1B', 'value2B', 'value3B', 'value4B', 'value5B'],
'colC': ['value1C', 'value2C', 'value3C', 'value4C', 'value5C'],
'colD': ['value1D', 'value2D', 'value3D', 'value4D', 'value5D']
}
df = pd.DataFrame(data)
# 1. 定义键与目标列的映射关系
# 例如:'key1' 对应 'colA' 和 'colD'以上就是基于键值条件高效映射 Pandas DataFrame 多列数据的详细内容,更多请关注其它相关文章!
# 解决问题
# 视频的营销推广
# 哈尔滨网站维护优化
# 如何上商城链接网站推广
# 越秀知识营销推广
# 宜昌外贸网站建站推广企业
# 石家庄高级网站建设报价
# 网站影响推广吗
# 电子商务网站推广含义
# seo的优化营销
# 怎样优化新网站引流推广
# 工具
# 数据处理
# 中文网
# 相关文章
# 是一个
# 矢量化
# 键值
# 多维
# 掩码
# 布尔
# 数据清洗
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
如何在CSS中使用伪类选择器_hover实现悬停效果
《豆瓣》私信用户方法
阿里旺旺电脑网页版入口 阿里旺旺电脑版网页登录入口
如何解决Casbin日志与应用日志不统一的问题,使用casbin/psr3-bridge实现无缝集成
视频转蓝光m2ts格式
火柴人战争网页版在线玩
江苏大剧院会员卡购买步骤
oppo手机如何通过下拉通知栏截图_oppo手机通知栏快捷截图方法
《单词速记宝》设置学习计划方法
《糖豆》添加舞曲方法
Leaflet地图弹出窗口图片动态显示:避免缺失图标的专业指南
火狐浏览器无法自动更新怎么办 手动更新火狐浏览器到最新版本【解决】
Dash应用中自定义HTML页面标题与网站图标(F*icon)的实用指南
vivo手机视频通话美颜怎么设置_vivo视频通话美颜开启方法
发布小红书怎么屏蔽粉丝?屏蔽粉丝能看到吗?
火狐浏览器如何刷新修复浏览器 火狐浏览器“重置Firefox”功能详解
邮政快递寄件查询入口 邮政快递收件查询入口
喜茶GO更换登录账号方法
《tt语音》超级玩家开通方法
红手指专业版app注册教程
123平台官方登录入口 123邮箱网页端在线沟通工具
研招网官方网站招生平台入口_中国研究生招生信息网官网登录
Python测试中模块导入路径解析的最佳实践
之了课堂app做题入口
如何取消数字签名
C#解析来自网络的XML流数据 实时错误处理与重试机制
《随手记》关闭首页消息推送方法
Win11怎么设置分辨率 Win11显示设置调整分辨率及刷新率修改
J*aScript实现网页表单实时输入字段比较与验证教程
《雷电模拟器》截图方法介绍
diskgenius分区工具如何设置Bios启动项
宝妈做视频号该写什么标签话题?宝妈关注的话题有哪些?
支付宝如何解绑云闪付_支付宝与云闪付账户关联解除方法
聚水潭ERP后台管理系统登录 聚水潭ERP官方登录通道
c++类和对象到底是什么_c++面向对象编程基础
yy漫画登录页面官方入口_yy漫画在线阅读网址入口
虫虫漫画绿色安全入口_虫虫漫画绿色安全入口安全看漫画
歌词怎么展示在|直播|间视频号?有什么注意事项?
《淘票票》添加到苹果钱包教程
C++中的explicit关键字有什么作用_C++类型转换控制与explicit使用
Lar*el Socialite单设备登录策略:实现用户唯一会话管理
《华夏千秋》龙女试炼功法获取方法
如何在Podman容器中运行Composer_Docker替代品Podman的PHP与Composer容器化实践
一加 Ace 6V 快充无法启用_一加 Ace 6V 充电优化
《KARDS》冬季扩展包“国土阵线”上线!全新“协力”机制改变战场格局
Windows Audio服务启动失败怎么办_电脑没声音的终极服务修复法【修复】
《U校园》学生登录入口2025
电脑视频号|直播|如何分享屏幕
《海豚家》注销账号方法
电子白板帮助菜单使用指南
2025-11-29
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。