You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas技术问询:根据指定列索引提取DataFrame对应值

嘿,我来帮你搞定这个提取需求!你要做的就是根据r里指定的列ID,从cs中精准提取对应位置的值,用Pandas可以轻松实现:

解决方案

首先我们得把r里的浮点数列ID转成整数(因为cs的列名是整数类型,直接用浮点数会匹配不到),然后用Pandas专门的lookup方法来快速匹配行索引和列标签,这是效率最高的方式之一:

import pandas as pd

# 把r中的列ID从浮点数转为整数(r只有一列,列名为0)
r_int = r[0].astype(int)

# 使用lookup提取对应位置的值,并用原索引构建结果Series
result = pd.Series(cs.lookup(cs.index, r_int), index=cs.index)

print(result)

运行这段代码后,你会得到期望的结果:

130    S
143    C
146    C
324    S
327    R
dtype: object

备选方法:逐行处理(更直观)

如果你偏好更易理解的逐行操作,也可以用apply方法实现:

result = cs.apply(lambda row: row[r.loc[row.name]], axis=1)

它会遍历cs的每一行,根据当前行的索引找到r中对应的列ID,再提取该行对应列的值,结果和上面完全一致。

小提示

  • lookup是Pandas专门为“按行+列标签提取值”设计的方法,数据量越大,它的性能优势越明显,比apply高效很多。
  • 一定要把r的浮点数转成整数,不然会因为列名类型不匹配,提取不到正确的值哦!

内容的提问来源于stack exchange,提问作者dayum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 07:02:49