gpt4 book ai didi

python - Python 数据透视表中的列差异

转载 作者:太空宇宙 更新时间:2023-11-03 14:29:43 26 4
gpt4 key购买 nike

我有一个 pandas pivot_table,它在多行的 2 列中聚合了 2 个数据集。我想添加另一列,即按行显示两个现有列中聚合值之间的差异。有没有办法直接在 pivot_table() 调用中实现它?我知道返回的 pivot 是一个数据框,所以我可以通过其他方式计算它,但只是好奇是否有更有效的方法。

我的数据的简单示例:

  Set     Type   Val
S1 A 1
S1 B 2
S1 B 3
S2 A 4
S2 B 5
S2 C 6

使用以下代码,其中数据是我的 df

piv=pivot_table(data,'Val',rows='Type',cols='Set',aggfunc=sum,fill_value=0.0)

我明白了

    S1  S2
A 1 4
B 5 5
C 0 6

我希望输出是

    S1  S2 Diff
A 1 4 3
B 5 5 0
C 0 6 6

或者只是

   Diff
A 3
B 0
C 6

最佳答案

简单。数据框(和一般的矩阵)使一次操作多个元素变得容易。

定义要应用的函数。

>>> def abs_diff(x, y):
>>> return abs(x - y)

然后,应用它。

>>> df['Diff'] = abs_diff(df['S1'], df['S2'])

>>> df

S1 S2 Diff
A 1 4 3
B 5 5 0
C 0 6 6

当然,如果您只想呈现特定列:-

>>> df['Diff']

A 3
B 0
C 6
Name: Diff

(>>>当然是python shell提示)

关于python - Python 数据透视表中的列差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608748/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com