
本文介绍如何利用 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 】
相关推荐:
盲鳗善于分泌黏液猜猜主要用来做什么
高效调试PHP大型嵌套数组:JSON序列化与可视化工具实践
Excel如何快速合并单元格内容_Excel文本合并与函数操作技巧
厨房地面防滑垫的油污怎么洗? 机洗和手洗防滑垫的注意事项
抖音视频如何添加标题?添加标题有哪些好处?
《360浏览器》自动保存账号密码设置方法
139邮箱登录入口官网 139邮箱登录入口官网网址
学习通网页版课程打不开_课程无法访问时的解决方法
iPhone 13 Pro Max如何设置桌面小组件_iPhone 13 Pro Max小组件添加指南
掌握Go App Engine项目结构与GOPATH:包管理与导入实践
mysql中外键约束如何使用_mysql FOREIGN KEY操作
漫蛙官网(首页入口)_漫蛙漫画稳定访问教程分享
谷歌学术论文搜索引擎 谷歌学术官网入口论坛永久链接
《暗黑破坏神4》国服回归送狂欢礼包 价值6916元
智学网app怎么登录忘记密码_智学网app忘记密码找回与重新登录操作方法
《下一站江湖2》独孤剑诀习得方法
苹果17 Pro如何启用分屏浏览_iPhone 17 Pro分屏浏览设置步骤
PPT页面尺寸怎么修改 PPT自定义幻灯片大小与方向设置【教程】
《优志愿》修改手机号方法
电脑从睡眠中被自动唤醒怎么办_Windows唤醒源事件查看与禁用【解决】
《星露谷物语》克林特好感度事件介绍
《新三国志曹操传》游历事件袁尚突围攻略
MySQL多重JOIN技巧:高效关联同一表获取多角色信息
手机自动关机是怎么回事?如何修复?手机异常关机的原因排查与修复技巧
抖音怎么解除第三方绑定_抖音解除第三方平台绑定方法介绍
解决CSS容器溢出问题:使用calc()实现精确布局与边距控制
Leaflet地图弹出窗口图片动态显示:避免缺失图标的专业指南
Sublime怎么自动添加CSS前缀_Sublime安装Autoprefixer插件
《我的恋爱逃生攻略》中文名字输入方法
《波斯王子:失落的王冠》剑术大师打法攻略
《深林》冬季章节图文攻略
J*aScript与HTML元素交互:图片点击事件与链接处理教程
word表格如何按某一列内容进行排序_Word表格按列排序方法
小红书网页版怎么进 小红书网页版通用入口
三星A55应用闪退排查步骤_Samsung A55稳定性优化技巧
Win11怎么录屏_Windows 11自带Xbox Game Bar录制视频
Flexbox布局:实现粘性导航与底部页脚的完美结合
diskgenius分区工具如何设置Bios启动项
composer licenses 命令:如何检查项目依赖的许可证?
《合金装备4》有望推出重制版!制作人发话了
苹果iPhone14ProMax如何新建AppleID_iPhone14ProMax新建AppleID具体流程
c++20的指定初始化(Designated Initializers)怎么用_c++ C风格结构体初始化
B站怎么开|直播| B站|直播|申请需要什么条件【新手必看】
uc浏览器官网网页版使用 uc浏览器官网免费在线首页
Python自动化抓取GBGB赛狗比赛结果:日期范围与赛道筛选教程
mysql离线安装后如何启动_mysql离线安装完成后启动服务的方法
抖音号怎么解除企业认证改成个人?改成个人有影响吗?
Excel如何快速找到并断开外部数据源链接_Excel外部数据源断开方法
包子漫画在线观看入口 包子漫画网正版全集链接
PHP中实现JSON数据数组分页的教程
2025-11-29
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。