Python 如何有条件地更新Pandas中的DataFrame列

Python 如何有条件地更新Pandas中的DataFrame列,python,pandas,Python,Pandas,有了这个数据帧,当line\u race等于零时,我如何有条件地将rating设置为0 line_track line_race rating foreign 25 MTH 10 84 False 26 MTH 6 88 False 27 TAM 5 87 False 28 GP 2 86 Fa

有了这个数据帧,当
line\u race
等于零时,我如何有条件地将
rating
设置为0

    line_track  line_race  rating foreign
 25        MTH         10     84    False
 26        MTH          6     88    False
 27        TAM          5     87    False
 28         GP          2     86    False
 29         GP          7     59    False
 30        LCH          0    103     True
 31        LEO          0    125     True
 32        YOR          0    126     True
 33        ASC          0    124     True
换句话说,如果ColumnA=x然后ColumnB=y或者ColumnB=ColumnB

用于表示如果ColumnA=x然后ColumnB=y或者ColumnB=ColumnB,那么数据帧上的正确方式是什么:

df.loc[df['line_race'] == 0, 'rating'] = 0

我一直在使用选择答案中给出的方法,今天我需要有条件地使用派生值更新列a。 接受的答案显示“如何将列行_race更新为0。 下面是一个示例,您必须导出要更新的值:

df.loc[df['line_race'].isna(), 'rating'] = ( (df['line_race'] - df['line_race2'])/df['line_race2'] )
使用此选项,您只能更新与条件匹配的行上的动态值

df.loc[df['line_race'].isna(), 'rating'] = ( (df['line_race'] - df['line_race2'])/df['line_race2'] )