【问题标题】:Calculate minimums in Pandas without `zero`-values?在没有“零”值的情况下计算熊猫的最小值?
【发布时间】:2016-02-24 17:23:13
【问题描述】:

我有以下数据,第一步需要在没有0.00 的行中查找min

HOME_48  HOME_24  HOME_12  HOME_03  HOME_01  HOME_00   HOME  
   0.00     1.54     2.02     1.84     1.84     1.84   1.84  
   0.00     1.47     1.76     1.89     2.56     2.56   2.56  
   0.00     2.02     2.50     2.56     1.89     1.92   1.92  

稍后我需要计算minmax之间的delta-diff,但如果我使用下面的代码,最终结果是不可接受的

df['HOME_MIN'] = df.loc[:, COL_HOME].min(axis=1)

我不想使用以下技巧:

df = df.replace(0, np.NaN)

因为,有时极值可能等于0.010.02 - 这些也不是正确的值。

如何添加条件以跳过0.00| 0.01 值?

注意:正确的过滤器是

df[df[COL_HOME].min(axis=1) > 0.03].loc[:, COL_HOME].min(axis=1)

【问题讨论】:

    标签: python python-2.7 pandas


    【解决方案1】:

    您可以使用布尔过滤器来排除您不想要的任何内容,就像这样。

    In [46]: df[df > .01].min(axis=1)
    Out[46]: 
    0    1.54
    1    1.47
    2    1.89
    dtype: float64
    

    【讨论】:

    • 我需要在特定列中找到min 值作为df.loc[:, COL_HOME].min(axis=1)。我如何修改您的示例?
    • 过滤后选择即可,e.g. df[df > .01].loc[:, COL_HOME].min(axis=1)
    • 添加如你所说,df['HOME_MIN'] = df[df > 0.03].loc[:, COL_HOME].min(axis=1) 并努力输出screencast.com/t/fD5rcmb7
    猜你喜欢
    • 2018-06-01
    • 1970-01-01
    • 2022-11-01
    • 2016-10-28
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 2022-06-16
    相关资源
    最近更新 更多