【问题标题】:How to get the second smallest value in pandas series (pandas.Series.min)?如何获得熊猫系列(pandas.Series.min)中第二小的值?
【发布时间】:2022-01-23 22:35:27
【问题描述】:

我的一些数据包含“0.0”作为空值的占位符。

我需要获取不是“0.0”的最小值。

在 excel 中会很容易,因为它会询问您想要哪个最小值,但看起来 pandas.Series.min 没有选择第二小的选项。

请记住,我有时会有多个“0”值。

如何获得不是 0.0 的最小值?

【问题讨论】:

  • min(s[s != 0.0]) ?

标签: python pandas series min


【解决方案1】:

如果你有系列s,那么你可以试试:

s = pd.Series([1,0.0,2,3])
min(s[s != 0.0])

在本例中,这将返回 1.0。假设您的系列中的所有值都大于或等于 0,这应该给您第二小的值

【讨论】:

  • 嗯...我会有很多零。我想知道以某种方式将系列导入到集合中是否可行
【解决方案2】:

用途:

s.where(lambda x: x > 0).min()

如果可以为负:

s.where(lambda x: x != 0).min()

【讨论】:

    【解决方案3】:

    我假设你只有正数?如果是这样,这是一个替代解决方案,排序并取第二个值

    df.sort_values(by='column_name')['column_name'].values[1]
    

    【讨论】:

      【解决方案4】:

      许多不同的方式: :)

      min([ x for x in df['Values'] if x != 0.0])
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-06
        • 1970-01-01
        • 2016-12-28
        • 1970-01-01
        • 2019-04-11
        • 2020-08-07
        • 2021-09-23
        • 2023-03-25
        相关资源
        最近更新 更多