Pandas:用列最大值替换列中的所有值

M. *_*lad 3 python dataframe pandas

我有以下数据框

            NDQ        CFRI        NFFV        [more columns....]
2002-01-24 92.11310000 57.78140000 90.95720000
2002-01-25 57.97080000 91.05430000 58.19820000
Run Code Online (Sandbox Code Playgroud)

我想将列中的所有值设置为等于相应列的最大值。

期望的输出:

            NDQ        CFRI        NFFV        [more columns....]
2002-01-24 92.11310000 91.05430000 90.95720000
2002-01-25 92.11310000 91.05430000 90.95720000
Run Code Online (Sandbox Code Playgroud)

我试图将其映射到 的结果df.max(),但在实施方面遇到了困难,并且觉得会有更简单的解决方案可用。

任何帮助将不胜感激。

ank*_*_91 7

您可以使用df.clip并将lower参数设置为df.max

从文档:

lower : float 或 array_like,默认 None 最小阈值。低于此阈值的所有值都将设置为它。

df.clip(df.max(),axis=1)
Run Code Online (Sandbox Code Playgroud)
                NDQ     CFRI     NFFV
2002-01-24  92.1131  91.0543  90.9572
2002-01-25  92.1131  91.0543  90.9572
Run Code Online (Sandbox Code Playgroud)