本文介绍一种高效、向量化的方法,利用 `pd.factorize` 和 numpy 索引,在大型 dataframe 中根据某列指定的列名,从源 dataframe 中按行提取对应列的值。
在实际数据分析中,常遇到“列名由另一列动态决定”的场景:例如,df1['idx'] 存储了要查询的列名(如 "a" 或 "b"),而真实数值存储在另一个结构对齐的 DataFrame df 中。目标是为每一行,依据 df1.idx 的值,从 df 的对应列中取出该行的值——且需兼顾性能,避免 .apply() 或 Python 循环。
以下是最优解法(纯向量化、无显式循环):
import pandas as pd
import numpy as np
# 构造示例数据
df = pd.DataFrame({'a': [94, 170, 5],
'b': [31, 115, 8]}, index=[11, 12, 13])
df1 = pd.DataFrame({'idx': ["a", "b", "a"]}, index=[11, 12, 13])
# 核心步骤:向量化列查找
idx_codes, col_labels = pd.factorize(df1['idx']) # 将列名映射为整数编码
# reindex 使 df 行索引与 df1 对齐,并仅保留所需列(去重后)
aligned_df = df.reindex(index=df1.index, columns=col_labels)
# 使用 NumPy 高级索引:每行取 idx_codes[i] 列的值
result = aligned_df.to_numpy()[np.arange(len(df1)), idx_codes]
print(result) # [ 94 115 5]将结果作为新列加入 df1:
df1['out'] = result print(df1) # idx out # 11 a 94 # 12 b 115 # 13 a 5
✅ 为什么高效?
⚠️ 注意事项:
该方法适用于百万级行数据,实测在 100 万行 × 数十列场景下耗时稳定在毫秒级,是处理“列名驱动索引”问题的工业级首选方案。
相关文章:
如何通过虚拟机搭建网站?详细步骤解析
企业微网站怎么做,公司网站和公众号有什么区别?
广德云建站网站建设方案与建站流程优化指南
如何在云服务器上快速搭建个人网站?
如何在Windows服务器上快速搭建网站?
如何快速搭建支持数据库操作的智能建站平台?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
建站主机服务器选型指南与性能优化方案解析
香港服务器建站指南:外贸独立站搭建与跨境电商配置流程
如何高效利用亚马逊云主机搭建企业网站?
企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?
宝塔建站助手安装配置与建站模板使用全流程解析
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何快速搭建安全的FTP站点?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
,巨量百应是干嘛的?
香港服务器选型指南:免备案配置与高效建站方案解析
,网页ppt怎么弄成自己的ppt?
建站之星上传入口如何快速找到?
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
网站微信制作软件,如何制作微信链接?
免费网站制作appp,免费制作app哪个平台好?
香港服务器租用每月最低只需15元?
如何快速打造个性化非模板自助建站?
在线制作视频的网站有哪些,电脑如何制作视频短片?
如何快速搭建二级域名独立网站?
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
建站主机SSH密钥生成步骤及常见问题解答?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
兔展官网 在线制作,怎样制作微信请帖?
如何在阿里云服务器自主搭建网站?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
宝塔面板创建网站无法访问?如何快速排查修复?
网站制作员失业,怎样查看自己网站的注册者?
建站主机系统SEO优化与智能配置核心关键词操作指南
广州建站公司哪家好?十大优质服务商推荐
建站之星代理如何优化在线客服效率?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
济南企业网站制作公司,济南社保单位网上缴费步骤?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
教学论文网站制作软件有哪些,写论文用什么软件
?
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
清除minerd进程的简单方法
如何在万网主机上快速搭建网站?
韩国服务器如何优化跨境访问实现高效连接?
代刷网站制作软件,别人代刷火车票靠谱吗?
建站之星如何优化SEO以实现高效排名?
南平网站制作公司,2025年南平市事业单位报名时间?
linux top下的 minerd 木马清除方法
如何通过NAT技术实现内网高效建站?
*请认真填写需求信息,我们会在24小时内与您取得联系。