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