[英]How to sum two columns together based on another column's value using Pandas
我想使用 Pandas 重現“desired_outcome”列。 基本上每次“Acc 類型”等於 O 時,我都必須取余額和金額的總和。
+--------+----------+-------+---------+--------+----------+-----------------+
| MainID | Date | SubID | Balance | Amount | Acc Type | desired_outcome |
+--------+----------+-------+---------+--------+----------+-----------------+
| 1 | 1/1/2020 | 1 | 10 | 5 | O | 15 |
| 1 | 1/1/2020 | 1 | 10 | 4 | R | 10 |
| 1 | 1/1/2020 | 2 | 20 | 5 | O | 25 |
| 1 | 1/1/2020 | 2 | 20 | 4 | R | 20 |
| 1 | 1/1/2020 | 3 | 30 | 5 | O | 35 |
| 1 | 1/1/2020 | 3 | 30 | 4 | R | 30 |
| 1 | 2/1/2020 | 1 | 40 | 5 | O | 45 |
| 1 | 2/1/2020 | 1 | 40 | 4 | R | 40 |
| 1 | 2/1/2020 | 2 | 50 | 5 | O | 55 |
| 1 | 2/1/2020 | 2 | 50 | 4 | R | 50 |
| 1 | 2/1/2020 | 3 | 60 | 5 | O | 65 |
| 1 | 2/1/2020 | 3 | 60 | 4 | R | 60 |
| 2 | 1/1/2020 | 7 | 100 | NaN | O | 100 |
| 2 | 1/1/2020 | 7 | 100 | NaN | R | 100 |
+--------+----------+-------+---------+--------+----------+-----------------+
另外,我知道這不是理想的數據幀,理想的方法可能是擁有兩個數據幀。 我如何將它設置在我有第二個數據幀的位置,如下所示:並且仍然能夠像上面那樣具有所需的輸出列(沒有額外的行,因為 acc 類型將不再存在)
+--------+----------+------------+----------+
| MainID | Date | Acc Amount | Acc Type |
+--------+----------+------------+----------+
| 1 | 1/1/2020 | 5 | O |
| 1 | 1/1/2020 | 4 | R |
| 1 | 2/1/2020 | 5 | O |
| 1 | 2/1/2020 | 4 | R |
| 2 | 1/1/2020 | NaN | O |
| 2 | 1/1/2020 | NaN | R |
+--------+----------+------------+----------+
謝謝!
你的數據框就好了。 這是我會做的:
df['desired_outcome'] = np.where(df['Acc Type']=='O',
df['Balance'] + df['Amount'].fillna(0),
df['Balance'])
輸出:
MainID Date SubID Balance Amount Acc Type desired_outcome
0 1 1/1/2020 1 10 5.0 O 15.0
1 1 1/1/2020 1 10 4.0 R 10.0
2 1 1/1/2020 2 20 5.0 O 25.0
3 1 1/1/2020 2 20 4.0 R 20.0
4 1 1/1/2020 3 30 5.0 O 35.0
5 1 1/1/2020 3 30 4.0 R 30.0
6 1 2/1/2020 1 40 5.0 O 45.0
7 1 2/1/2020 1 40 4.0 R 40.0
8 1 2/1/2020 2 50 5.0 O 55.0
9 1 2/1/2020 2 50 4.0 R 50.0
10 1 2/1/2020 3 60 5.0 O 65.0
11 1 2/1/2020 3 60 4.0 R 60.0
12 2 1/1/2020 7 100 NaN O 100.0
13 2 1/1/2020 7 100 NaN R 100.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.