【发布时间】:2021-05-11 12:41:48
【问题描述】:
想象一下以下数据集:
data = {"row1":[1,2,3,4,5], "row2" : [2,3,4,1,3], "row3":[3,4,2,0,0] }
data = pd.DataFrame(data)
data = data.T
print(data)
0 1 2 3 4
row1 1 2 3 4 5
row2 2 3 4 1 3
row3 3 4 2 0 0
我想找到出现在max value 之后的min value。所以在最大值之前存在的任何最小值都不是我感兴趣的。
我写了这段代码:
data["Max_Value"] = data.max(axis=1)
data["Max_Index"] = data.idxmax(axis=1)
dt["Min_Value"] = dt.iloc[:, dt["Max_Index"]:].min(axis=1)
dt["Min_Index"] = dt.iloc[:, dt["Max_Index"]:].idxmin(axis=1)
dt["Max_Index"]:] 是我尝试以动态方式获取最大值索引。那么我可以找到出现在数据集那部分之后的最小值。但它并没有按我的意愿工作。
我希望得到如下结果:
0 1 2 3 4 Max_Value Max_Index Min_Value Min_Index
row1 1 2 3 4 5 5 4 5 4
row2 2 3 4 1 3 4 2 1 3
row3 3 4 2 0 0 4 1 0 3
它不起作用,我也不想使用循环,我的错误是什么?
【问题讨论】:
-
row1 的最小值应该是 1 而不是 5。请参阅我的回复
-
@JoeFerndz 我正在寻找最大值之后的最小值。在第一行中,最大值为 5,我正在寻找 5(包括 5)之后数字的最小值
-
到目前为止你尝试过的结果是什么?你只说“它不像我打算的那样工作”。