如何获得每个X值的Y的最小值?

时间:2018-10-21 15:44:31

标签: python pandas math pandas-groupby

我有两个列表X和Y。

X = [0.034, 0.026, 0.028, ...]
Y = [0.0099, 0.0065, 0.0061, ...]

我想获得每个X值的Y最小值。我尝试了groupby方法。我需要在边界上取点。在下图中以黑色标记。我对所有点都有X和Y坐标。

2 个答案:

答案 0 :(得分:4)

您可以将HashSet/ConcurrentHashMapgrouby一起使用:

min()

在处理浮点数时,您可能想对四舍五入的数字(例如5位数字)进行import pandas as pd # two y values for 0.034 and 0.026 X = [0.034, 0.026, 0.028, 0.034, 0.026] Y = [0.0099, 0.0065, 0.0061, 0.1, 0.000001] df = pd.DataFrame({'x': X, 'y': Y}) x y 0 0.034 0.009900 1 0.026 0.006500 2 0.028 0.006100 3 0.034 0.100000 4 0.026 0.000001 df.groupby('x')['y'].min() x 0.026 0.000001 0.028 0.006100 0.034 0.009900 Name: y, dtype: float64

groupby

使用您提供的数据集将得到8018 df.groupby(df['x'].round(5))['y'].min() 对。

答案 1 :(得分:1)

这是Python中获取最小值的一种方法.. 参见示例

list1, list2 = [123, 223, 154, 235], [456, 700, 200]
print "min value element : ", min(list1)
print "min value element : ", min(list2)

当我们运行上面的程序时,它会产生以下结果-

min value element :  123
min value element :  200

上述答案中所述的熊猫解决方案:

df.groupby('x')['y'].min()