我正在尝试根据不同的列检索行的最小值,这里是 excel 文件:
需要有最旧的日期。
当使用 min(axis=1) 函数时,它返回空系列:
Result of running df.min(axis=1)
当我使用 max(axis=1) 时,它起作用了!!
有什么解决办法吗?
谢谢。
答案 0 :(得分:0)
对于熊猫,空值的排名低于非空值。因此,当 Pandas 计算数组 (NaN, NaN, '12/05/2020, NaN)
的最小值时,最小值为 NaN
。
同样,df.max(axis=1)
返回非空系列,因为非空单元格的排名高于空单元格。
我能想到的最简单的解决方案是堆叠数据帧,按行索引分组并获取每组的最小值。此方法会自动删除每个组的空值。
df.stack().groupby(level=0).min()
答案 1 :(得分:-1)
所以找到了一种解决方法,我使用替换函数将 nan 值替换为一个遥远的未来日期 (12/12/2222) 并取了最小值。如果您有更干净的解决方案,请分享。
谢谢。