除了最大值之外,将每列中的所有值替换为 0(pandas、python)

Man*_*oon 6 python dataframe pandas

我有一个 df ,我想将不是每列最大值的值替换为 0。

代码:

data = {
    "A": [1, 2, 3],
    "B": [3, 5, 1],
    "C": [9, 0, 1]
}

df = pd.DataFrame(data)
Run Code Online (Sandbox Code Playgroud)

样本 df:

   A  B   C
0  1  3   9
1  2  5   0
2  3  1   1
Run Code Online (Sandbox Code Playgroud)

试图得到的结果:

   A  B   C
0  0  0   9
1  0  5   0
2  3  0   0
Run Code Online (Sandbox Code Playgroud)

好心提醒。非常感谢

小智 3

尝试:

df[df!=df.max()] = 0
Run Code Online (Sandbox Code Playgroud)

输出:

   A  B  C
0  0  0  9
1  0  5  0
2  3  0  0
Run Code Online (Sandbox Code Playgroud)