2017-05-03 4 views

答えて

4
In [226]: df[['A','B','C']] = df.deposit.values[:, None] - df[['A','B','C']] 

In [227]: df 
Out[227]: 
     date deposit A B C 
0 2017-01-15  12 7 2 0 
1 2017-01-16  20 10 16 -12 
2 2017-01-17  5 -45 -5 -13 
3 2017-01-18  22 7 2 10 
0
for c in ['A','B','C']: 
    df[c]=df['deposit']-df[c] 
2

locそれinplace

df.update(df[['A', 'B', 'C']].rsub(df.deposit, 0)) 

df 

     date deposit A B C 
0 2017-01-15  12 7 2 0 
1 2017-01-16  20 10 16 -12 
2 2017-01-17  5 -45 -5 -13 
3 2017-01-18  22 7 2 10 

copy
を行うための

cols = ['A', 'B', 'C'] 
df.loc[:, cols] = df[cols].rsub(df.deposit, 0) 
df 


     date deposit A B C 
0 2017-01-15  12 7 2 0 
1 2017-01-16  20 10 16 -12 
2 2017-01-17  5 -45 -5 -13 
3 2017-01-18  22 7 2 10 

inplace
私の好み 私の全体的な好み全体

df.assign(**df[['A', 'B', 'C']].rsub(df.deposit, 0).to_dict('list')) 

     date deposit A B C 
0 2017-01-15  12 7 2 0 
1 2017-01-16  20 10 16 -12 
2 2017-01-17  5 -45 -5 -13 
3 2017-01-18  22 7 2 10 
関連する問題