簡體   English   中英

Python Pivot-Table中的列差異

[英]Column Differences in Python Pivot-Table

我有一個pandas pivot_table,可以在兩行中聚合2個數據集。 我想添加另一列,即兩行現有列中的聚合值之間的差異。 有沒有辦法直接在pivot_table()調用中實現它? 我知道返回的數據幀是一個數據幀,所以我可以通過其他方式計算它,但只是好奇是否有更有效的方法。

我的數據的簡單示例:

  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提示符)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM