亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據Pandas分組結果計算公式并添加到最終結果集中

根據Pandas分組結果計算公式并添加到最終結果集中

慕姐8265434 2023-10-31 14:53:42
數據框:df = {'Client': ['A', 'A', 'A',                 'B', 'B', 'B', 'B','B','B','B','B',                 'C',                 'D','D','D','D','D','D','D','D','D','D','D' ],'Result': ['Covered', 'Customer Reject', 'Customer Timeout',           'Dealer Reject','Dealer Timeout','Done','Tied Covered','Tied Done','Tied Traded Away','Traded Away','No RFQ',           'No RFQ',           'Covered','Customer Reject','Customer Timeout','Dealer Reject','Dealer Timeout','Done','Tied Covered','Tied Done','Tied Traded Away','Traded Away','No RFQ']}df = pd.DataFrame.from_dict(df)print(df)   Client            Result0       A           Covered1       A   Customer Reject2       A  Customer Timeout3       B     Dealer Reject4       B    Dealer Timeout5       B              Done6       B      Tied Covered7       B         Tied Done8       B  Tied Traded Away9       B       Traded Away10      B            No RFQ11      C            No RFQ12      D           Covered13      D   Customer Reject14      D  Customer Timeout15      D     Dealer Reject16      D    Dealer Timeout17      D              Done18      D      Tied Covered19      D         Tied Done20      D  Tied Traded Away21      D       Traded Away22      D            No RFQ期望的輸出:我想添加兩個使用每個返回分組結果的公式。因此,將有Total一行(每個客戶端的所有結果的總和),但也有兩個基于從每個客戶端返回的分組值之和的公式(Pct_Calc_1和):Pct_Calc_2Pct_Calc_1 = (Total_Result_Per_Client - Total_Dealer_Reject_Per_Client - Total_Dealer_Timeout_Per_Client) / (Total_Per_Client - Total_Customer_Reject_Per_Client)Pct_Calc_2 = (Total – (Covered + Tied Covered) – Customer Reject – Dealer Reject – Dealer Timeout – (Traded Away + Tied Traded Away)) / (Total – Dealer Reject – Dealer Timeout)如果需要更改原始分組來滿足此額外輸出,那么一切都很好。
查看完整描述

1 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

讓我們做crosstab


s = pd.crosstab(df.Client,df.Result,margins=True).drop('All')

s['Cal1']=(s['All'] - s['Dealer Reject'] - s['Dealer Timeout'])/(s['All'] - s['Customer Reject'])

s = s.stack().reset_index(name='value')

s

   Client            Result  value

0       A           Covered   1.00

1       A   Customer Reject   1.00

2       A  Customer Timeout   1.00

3       A     Dealer Reject   0.00

4       A    Dealer Timeout   0.00

5       A              Done   0.00

6       A            No RFQ   0.00

7       A      Tied Covered   0.00

8       A         Tied Done   0.00

9       A  Tied Traded Away   0.00

10      A       Traded Away   0.00

11      A               All   3.00

12      A              Cal1   1.50

13      B           Covered   0.00

14      B   Customer Reject   0.00

15      B  Customer Timeout   0.00

16      B     Dealer Reject   1.00

17      B    Dealer Timeout   1.00

18      B              Done   1.00

19      B            No RFQ   1.00

20      B      Tied Covered   1.00

21      B         Tied Done   1.00

22      B  Tied Traded Away   1.00

23      B       Traded Away   1.00

24      B               All   8.00

25      B              Cal1   0.75

26      C           Covered   0.00

27      C   Customer Reject   0.00

28      C  Customer Timeout   0.00

29      C     Dealer Reject   0.00

30      C    Dealer Timeout   0.00

31      C              Done   0.00

32      C            No RFQ   1.00

33      C      Tied Covered   0.00

34      C         Tied Done   0.00

35      C  Tied Traded Away   0.00

36      C       Traded Away   0.00

37      C               All   1.00

38      C              Cal1   1.00

39      D           Covered   1.00

40      D   Customer Reject   1.00

41      D  Customer Timeout   1.00

42      D     Dealer Reject   1.00

43      D    Dealer Timeout   1.00

44      D              Done   1.00

45      D            No RFQ   1.00

46      D      Tied Covered   1.00

47      D         Tied Done   1.00

48      D  Tied Traded Away   1.00

49      D       Traded Away   1.00

50      D               All  11.00

51      D              Cal1   0.90


查看完整回答
反對 回復 2023-10-31
  • 1 回答
  • 0 關注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號