칼럼의 기준에 dataframe에 두 개의 열을 추가 또는 Subract?

산초 나무 :

나는 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

추천

출처http://43.154.161.224:23101/article/api/json?id=365108&siteId=1