두 번째 열의 값에 대해 열의 값을 groupby
으로 합산하려고 시도하지만 한편으로 세 번째 열의 값도 고려하면 df
은 다음과 같습니다.팬더 다른 열의 값에 따라 열의 합계를 집계하는 방법
id memo amount
1 pos 1.0
1 pos 2.0
1 neg 3.0
2 pos 4.0
2 pos 5.0
2 neg 6.0
2 neg 7.0
난 id
그룹화하고 싶은 amount
합계 있지만, 각 그룹은 memo
경우 pos
가 양 및 음의 예에 대한 것이다 neg
groupby
1
일 때, -1.0 - 2.0 + 3.0 = 0
이므로 총량은 0입니다.
내가 df.groupby('id')['amount'].sum()
을 수행하는 경우 과 amount
열만 고려하면 memo
도 고려해야합니다.
그래서 결과가 모양을
,id memo amount total_amount
1 pos 1.0 0.0
1 pos 2.0 0.0
1 neg 3.0 0.0
2 pos 4.0 -4.0
2 pos 5.0 -4.0
2 neg 6.0 -4.0
2 neg 7.0 -4.0
당신은 내가 첫 번째 단계에' '안양를 numpy.where'를 사용하는 것이 좋습니다 것이 조금 – daiyue
[ "임시"] = np.where (안양 [ "메모"] == "NEG 코드를 설명 할 수 ", -df ["amount "], df ["amount "])' – user32185
@ user32185 : 그래, 좀 더 나은 성능을 보이는 것처럼 보입니다. 또한 df.amount * np.where (df.memo == 'pos', 1, -1)의 절충안을 약간 뒤엎습니다. – fuglede