[英]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.