根据条件对熊猫进行数字反转

时间:2019-05-18 13:54:51

标签: python pandas

我有一个看起来像这样的数据框:

import pandas as pd
d={'name':['edward','margaret'],'sex':['male','female'],'amt':[100,200]}

df=pd.DataFrame(data=d)

如果性别是“女性”,我想反转amt列。因此,第二条记录需要将amt设置为-200。像这样:

df.loc[df['sex']=='female','amt']=-200

1 个答案:

答案 0 :(得分:1)

您很接近,-1处只有多个匹配的行:

df.loc[df['sex']=='female','amt'] *= -1
print (df)
       name     sex  amt
0    edward    male  100
1  margaret  female -200

什么是简化版本:

df.loc[df['sex']=='female','amt'] = df.loc[df['sex']=='female','amt'] * -1