python - Pandas 使用来自 df 的值从 df 返回值

标签 python python-2.7 pandas dataframe

我有一个 df:

Index    ColA    ColB    ...    Marker1    Marker2    Return
 t0       a0      b0     ...      t0        colA        a0
 t1       a1      b1     ...      t1        colB        b1
 t2       a2      b2     ...      t1        colZ        z1
 t3       a3      b3     ...      t3        colB        b3

如何使用广播获取列返回?逻辑是:

  • 标记 1 = 相关索引
  • 标记 2 = 相关列
  • 返回=坐标(Marker1,Marker2)中的值

最佳答案

使用pd.DataFrame.lookup

df.assign(Return2=df.lookup(df.Marker1, df.Marker2))

      ColA ColB ColZ Marker1 Marker2 Return Return2
Index                                              
t0      a0   b0   z0      t0    ColA     a0      a0
t1      a1   b1   z1      t1    ColB     b1      b1
t2      a2   b2   z2      t1    ColZ     z1      z1
t3      a3   b3   z3      t3    ColB     b3      b3

设置

from io import StringIO
import pandas as pd

txt = """Index    ColA    ColB    ColZ   ...    Marker1    Marker2    Return
 t0       a0      b0     z0     ...      t0        ColA        a0
 t1       a1      b1     z1     ...      t1        ColB        b1
 t2       a2      b2     z2     ...      t1        ColZ        z1
 t3       a3      b3     z3     ...      t3        ColB        b3"""

df = pd.read_csv(StringIO(txt), delim_whitespace=True, index_col=0).drop('...', 1)

关于python - Pandas 使用来自 df 的值从 df 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43065811/

相关文章:

python - Scikit 学习高斯 HMM : ValueError: startprob must sum to 1. 0

python - 循环具有不同名称的列

python - 在 Pandas DataFrame 中选择多个列范围

python - 如何在控制台上打印我正在爬行的网站中特定类的所有内容?

python - 如何在日期时间设置为索引时获取以前的值

python - 请解释一下这个 lambda 函数?

即使没有定义运算符,Python 比较不相关的类型也会成功

python - Pandas 按行值拆分/分组数据框

python - 如何在 pandas 中读取固定宽度格式的文本文件?

python - 我可以将 Sprite 的 x 位置增加 -0.01,但不是 0.01?