我有一个看起来像这样的数据框:
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
答案 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