首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算列熊猫中行值与其余值之间的差异

计算列熊猫中行值与其余值之间的差异
EN

Stack Overflow用户
提问于 2022-08-25 13:28:44
回答 2查看 33关注 0票数 1

我有以下数据:

代码语言:javascript
复制
import pandas as pd
df = pd.DataFrame([
    [1, 4],
    [4, 6],
    [8, 2],
    [0, 8]
], columns=['a', 'b'])

如何计算如下列中第一行与其余行之间的差异:

代码语言:javascript
复制
df['operation_on_a'] = pd.DataFrame([
    ['1-1'],
    ['1-4'],
    ['1-8'],
    ['1-0']
])
df['operation_on_b'] = pd.DataFrame([
    ['4-4'],
    ['4-6'],
    ['4-2'],
    ['4-8']
])

并使用只使用获得如下结果

在numpy中,我发现有triu_indices方法,但我需要在整个数据表上这样做,以便从其他列获得信息。

你能告诉我解决这个问题的方法吗?谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-08-25 13:30:24

使用rsub

代码语言:javascript
复制
out = df.rsub(df.iloc[0])

或者:

代码语言:javascript
复制
out = df.iloc[0] - df

输出:

代码语言:javascript
复制
   a  b
0  0  0
1 -3 -2
2 -7  2
3  1 -4

如果还需要操作的字符串表示形式:

代码语言:javascript
复制
df.iloc[0].astype(str)+'-'+df.astype(str)

产出:

代码语言:javascript
复制
     a    b
0  1-1  4-4
1  1-4  4-6
2  1-8  4-2
3  1-0  4-8
票数 1
EN

Stack Overflow用户

发布于 2022-08-25 13:40:13

关于最后一部分:

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

https://stackoverflow.com/questions/73488405

复制
相关文章

相似问题

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