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'] )