산초 나무 :
나는 DF가 세 개의 열 이름, 금액과 유형이와 함께. 나는 유형의 기준으로 사용자에게 subract 값을 추가하거나하려고 해요
여기 내 샘플 DF이다
name amount type
0 John 10 ADD
1 John 20 ADD
2 John 50 ADD
3 John 50 SUBRACT
4 Adam 15 ADD
5 Adam 25 ADD
6 Adam 5 ADD
7 Adam 30 SUBRACT
8 Mary 100 ADD
내 결과 DF
name amount
0 John 30
1 Adam 15
2 Mary 100
이스 르엘 :
아이디어는 배수에 의한 1
경우 ADD
와 -1
경우 SUBRACT
열 후 집계 sum
:
df1 = (df['amount'].mul(df['type'].map({'ADD':1, 'SUBRACT':-1}))
.groupby(df['name'], sort=False)
.sum()
.reset_index(name='amount'))
print (df1)
name amount
0 John 30
1 Adam 15
2 Mary 100
상세 :
print (df['type'].map({'ADD':1, 'SUBRACT':-1}))
0 1
1 1
2 1
3 -1
4 1
5 1
6 1
7 -1
8 1
Name: type, dtype: int64
또한에만 음수 값을 지정할 수있다 numpy.where
여러 대 -1
에 의해 모든 다른 1
:
df1 = (df['amount'].mul(np.where(df['type'].eq('SUBRACT'), -1, 1))
.groupby(df['name'], sort=False)
.sum()
.reset_index(name='amount'))
print (df1)
name amount
0 John 30
1 Adam 15
2 Mary 100