簡體   English   中英

如何將 function 應用於 pandas 中的 groupby 方法?

[英]How to apply a function to groupby method in pandas?

我有一個這樣的數據框。

公司 類型 平衡
第一的 15
第一的 30
第一的 C 40
第二 10
第二 C 12
第二 C 15

我想創建一個 function,如果類型是 C,它會增加余額;如果類型是 D,它會減去余額。如何在 pandas groupby 方法中使用 apply function 來實現?

我的output應該是這樣的:

公司 類型 平衡 新百倫
第一的 15 -15
第一的 30 -45
第一的 C 40 -5
第二 10 -10
第二 C 12 2個
第二 C 15 17

使用where

df['New Balance'] = df['Balance'].where(df['Type'] != 'D', df['Balance']*-1) \
                                 .groupby(df['Company']).cumsum()
print(df)

# Output
  Company Type  Balance  New Balance
0   First    D       15          -15
1   First    D       30          -45
2   First    C       40           -5
3  Second    D       10          -10
4  Second    C       12            2
5  Second    C       15           17

利用:

temp = df['type']=='c'
df['new'] = temp.replace(False, -1).replace(True, 1)*df['bal']
df.groupby('company')['new'].cumsum()

output:

在此處輸入圖像描述

暫無
暫無

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

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