pandas 根据值从多列中的一列查找 [英] Pandas lookup from one of multiple columns, based on value

查看:25
本文介绍了 pandas 根据值从多列中的一列查找的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下DataFrame:

Date    best    a    b    c    d
1990    a       5    4    7    2
1991    c       10   1    2    0
1992    d       2    1    4    12
1993    a       5    8    11   6

我想做一个数据帧,如下所示:

Date    best    value   
1990    a       5
1991    c       2
1992    d       12
1993    a       5

因此,我希望通过使用列名根据另一个行值查找一个值。例如,第二个df中1990的值应该从第一个df查找"a",第二行应该从第一个df查找"c"(=2)。

有什么想法吗?

推荐答案

有一个内置的lookup函数可以处理这种情况(按行/列查找)。我不知道它的优化程度如何,但可能比应用解决方案更快。

In [9]: df['value'] = df.lookup(df.index, df['best'])

In [10]: df
Out[10]: 
   Date best   a  b   c   d  value
0  1990    a   5  4   7   2      5
1  1991    c  10  1   2   0      2
2  1992    d   2  1   4  12     12
3  1993    a   5  8  11   6      5

这篇关于 pandas 根据值从多列中的一列查找的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆