【发布时间】:2022-01-23 22:35:27
【问题描述】:
我的一些数据包含“0.0”作为空值的占位符。
我需要获取不是“0.0”的最小值。
在 excel 中会很容易,因为它会询问您想要哪个最小值,但看起来 pandas.Series.min 没有选择第二小的选项。
请记住,我有时会有多个“0”值。
如何获得不是 0.0 的最小值?
【问题讨论】:
-
min(s[s != 0.0])?
我的一些数据包含“0.0”作为空值的占位符。
我需要获取不是“0.0”的最小值。
在 excel 中会很容易,因为它会询问您想要哪个最小值,但看起来 pandas.Series.min 没有选择第二小的选项。
请记住,我有时会有多个“0”值。
如何获得不是 0.0 的最小值?
【问题讨论】:
min(s[s != 0.0]) ?
如果你有系列s,那么你可以试试:
s = pd.Series([1,0.0,2,3])
min(s[s != 0.0])
在本例中,这将返回 1.0。假设您的系列中的所有值都大于或等于 0,这应该给您第二小的值
【讨论】:
用途:
s.where(lambda x: x > 0).min()
如果可以为负:
s.where(lambda x: x != 0).min()
【讨论】:
我假设你只有正数?如果是这样,这是一个替代解决方案,排序并取第二个值
df.sort_values(by='column_name')['column_name'].values[1]
【讨论】:
许多不同的方式: :)
min([ x for x in df['Values'] if x != 0.0])
【讨论】: