首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据列值在不同列中减去两个值

根据列值在不同列中减去两个值
EN

Stack Overflow用户
提问于 2022-09-12 12:27:28
回答 1查看 16关注 0票数 0

我有一个数据框架,看起来像这样:

代码语言:javascript
运行
复制
df =

          AT       BE       DE       FR       NL       from     to
id
10365     2        4        6        12       4        DE       AT
10366     3        6        7        14       7        AT       FR
10370     4        8        8        16       10       BE       FR
10370     5        10       9        18       13       BE       FR
10380     6        12       10       20       16       NL       DE

我想要做的是获取另一列,如果它与from to值相匹配,则从彼此相减的列中减去两个值。例如,由此产生的数据框架应该类似于:

代码语言:javascript
运行
复制
df_result =

          AT       BE       DE       FR       NL       from     to    result
id
10365     2        4        6        12       4        DE       AT    6-2 = 4
10366     3        6        7        14       7        AT       FR    3-14 = -11
10370     4        8        8        16       10       BE       FR    8-16 = -8
10370     5        10       9        18       13       BE       FR    10-18 = -8
10380     6        12       10       20       16       NL       DE    16-10 = 6

当然不需要计算了。

因此,使用from = DEto = AT的第一行,它应该从同一行的DE中的值中减去该行中AT的值等等。

EN

回答 1

Stack Overflow用户

发布于 2022-09-12 12:35:33

使用Lambda

代码语言:javascript
运行
复制
df['result'] = df.apply(lambda x: x[x['from']]-x[x['to']], axis=1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73689256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档