我在尝试仅替换(用 0 )数据帧中最大值的第一个实例时遇到问题。 例如:
NAME 1ST MONTH 2ND MONTH 3RD MONTH....
Joe 3 3 2
Erik 5 7 7
我需要替换 df 中每行最大值的第一个实例。 我需要的输出是:
NAME 1ST MONTH 2ND MONTH 3RD MONTH....
Joe 0 3 2
Erik 5 0 7
但我正在使用:
df_temp1.apply(lambda x: x.replace(max(x), 0), axis = 1)
这给了我以下 df:
NAME 1ST MONTH 2ND MONTH 3RD MONTH....
Joe 0 0 2
Erik 5 0 0
最佳答案
您可以使用nlargest()
与 replace()
df = pd.DataFrame([[3, 3, 2], [5, 7, 7]], columns=['a', 'b', 'c'])
df = df.apply(lambda x: x.replace(x.nlargest(1), 0), axis=1)
print(df)
a b c
0 0 3 2
1 5 0 7
关于python - 仅替换 pandas 中数据框行的第一个最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59821502/