微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 在pandas DataFrame中屏蔽max之前出现的所有值

我想从pd.DataFrame.idxmax获取结果并使用它来更改索引前的值,并使用最大值.

如果我有df:

            Mule Creek  Saddle Mtn.  Calvert Creek
Date                                              
2011-05-01   23.400000    35.599998            8.6
2011-05-02   23.400000    35.599998            8.0
2011-05-03   23.400000    35.700001            7.6
2011-05-04   23.400000    50.000000            7.1
2011-05-05   23.100000    35.799999            6.4
2011-05-06   23.000000    35.799999            5.7
2011-05-07   40.000000    35.900002            4.7
2011-05-08   23.100000    36.500000           12.0
2011-05-09   23.299999    37.500000            4.4
2011-05-10   23.200001    37.500000            3.6

我发现每列的最大值出现在哪里:

max = df.idxmax()

我想在确定的最大值max all np.nan之前创建值

期望的结果:

            Mule Creek  Saddle Mtn.  Calvert Creek
Date                                              
2011-05-01         NaN          NaN            NaN
2011-05-02         NaN          NaN            NaN
2011-05-03         NaN          NaN            NaN
2011-05-04         NaN    50.000000            NaN
2011-05-05         NaN    35.799999            NaN
2011-05-06         NaN    35.799999            NaN
2011-05-07   40.000000    35.900002            NaN
2011-05-08   23.100000    36.500000           12.0
2011-05-09   23.299999    37.500000            4.4
2011-05-10   23.200001    37.500000            3.6

解决方法:

可以检查累积最大值与最大值的相同位置:

df.where(df.cummax() == df.max())

            Mule Creek  Saddle Mtn.  Calvert Creek
Date                                              
2011-05-01         NaN          NaN            NaN
2011-05-02         NaN          NaN            NaN
2011-05-03         NaN          NaN            NaN
2011-05-04         NaN    50.000000            NaN
2011-05-05         NaN    35.799999            NaN
2011-05-06         NaN    35.799999            NaN
2011-05-07   40.000000    35.900002            NaN
2011-05-08   23.100000    36.500000           12.0
2011-05-09   23.299999    37.500000            4.4
2011-05-10   23.200001    37.500000            3.6

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐