我试图通过在第一列中找到其最小点来将数据集分成两个单独的数据集。我使用 idxmin 首先确定最小条目的位置,然后使用 iloc 将数组从 0 切片到最小点。
我遇到的错误是:
TypeError: cannot do positional indexing on RangeIndex with these indexers [1 96
dtype: int64] of type Series
示例数据集如下所示:
x y
0 1.000000 6
1 1.000000 2
2 0.999999 5
3 0.999996 3
4 0.999986 4
.. ... ...
196 0.999987 3
197 0.999996 3
198 0.999999 2
199 1.000000 1
200 1.000000 4
x 列从 1 开始,减少到接近零的最小值,然后又增加回 1。我正在寻找最小的 x 及其对应的 y 点来将两者分开。
这是我当前编写的代码:
data = pd.DataFrame(data)
minimum = pd.DataFrame.idxmin(data)
lower_surface = data.iloc[:minimum]
我知道变量minimum将返回DataFrame中的一个位置,因此我认为我可以使用iloc将数组从开始到最小点分开,但事实并非如此。
您应该选择one列作为参考。
例如:
minimum = df['x'].idxmin(data)
此外,从技术上讲,你必须使用
loc
来切片,而不是 iloc