微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 基于值的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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐