
本文介绍如何利用 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 】
相关推荐:
C++ bind函数使用教程_C++参数绑定与函数适配器的应用
《杖剑传说》食谱大全
《via浏览器》强制缩放网页设置方法
Excel如何制作月度销售统计图_Excel动态图表制作与控件应用
哔哩哔哩的|直播|间怎么送礼物_哔哩哔哩|直播|送礼操作指南
mysql中如何分析索引使用情况_mysql索引使用分析方法
MySQL多重关联查询:利用别名高效获取同一表的多个关联字段
windows10怎么开启卓越性能_windows10电源选项代码激活
性能与资源监视器快捷打开
win11自带录屏文件保存在哪里 Win11 Game Bar录制视频默认路径【分享】
《金山词霸》语音翻译方法
Win10如何关闭开机锁屏界面_Windows10跳过锁屏直接登录设置
优化响应式标题底部边框:CSS实现技巧与最佳实践
《理想汽车》权限管理设置方法
OpenWeatherMap API:通过城市名称获取天气预报数据指南
C#解析来自网络的XML流数据 实时错误处理与重试机制
韩剧圈正版官网入口_韩剧圈官方指定登录
如何外贸网站设计-能留住客户提升用户体验!
WPS文字如何进行简繁转换
悟空浏览器网页版在线工具 悟空浏览器网页版在线平台入口
OPPO手机参数配置如何开启护眼模式_OPPO手机参数配置护眼模式开启指南
追剧达人如何发弹幕
为什么XML解析器对大小写敏感? 理解XML规范中的大小写规则与最佳实践
AffinityDesigner图层蒙版怎么用_AffinityDesigner图层蒙版设计应用
PDF如何批量加注释_PDF多文件批注高亮操作教程
阿里云共享相册入口在哪
Firefox OS应用开发:解决XMLHttpRequest跨域请求阻塞问题
我的世界游戏平台入口 我的世界官方官网直达链接
《大学搜题酱》官网地址登录
空腹吃苹果好吗 苹果空腹摄入指南
J*aScript:从子元素中批量移除特定CSS类
yy漫画登录页面官方入口_yy漫画在线阅读网址入口
抖音火山版注销账号抖音会注销吗 抖音火山版与抖音账号注销关系
深入理解随机递归函数的确定性:内部节点、叶节点与时间复杂度分析
大众点评了却看不到是怎么回事
《微信》视频号原创声明开启方法
《360浏览器》自动保存账号密码设置方法
如何测试您的网站全球打开速度-网站海外测速工
《下一站江湖2》心法融合技巧
抖音作品被限流怎么办 抖音内容优化与流量恢复方法
《原神》月之一版本新增书籍一览
三星M34录音变声问题_Samsung M34麦克风调整
海外搜索引擎推广效果怎么样,怎么分析效果!
多闪APP官方下载安装入口_多闪最新版本获取入口
《单词速记宝》设置学习计划方法
如何在CSS中使用过渡制作按钮边框渐变_border-color transition实现
使用 .htaccess 正确配置 WordPress 子目录重定向与路径保留
TikTok视频播放中断怎么办 TikTok播放异常修复方法
C#解析并修改XML后保存 如何确保格式与编码的正确性
VBA Outlook邮件自动化:高效集成Excel数据与列标题的策略
2025-11-29
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。