Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 记录最小绝对偏差,但包括其符号_Python_Pandas_Dataframe_Indexing_Calculated Columns - Fatal编程技术网

Python 记录最小绝对偏差,但包括其符号

Python 记录最小绝对偏差,但包括其符号,python,pandas,dataframe,indexing,calculated-columns,Python,Pandas,Dataframe,Indexing,Calculated Columns,我有一份以下形式的文件: 第一偏差 二次偏差 最近偏差 最小偏差的列名 -0.5 楠 -0.5 第一偏差 -0.4 -0.8 -0.4 第一偏差 按照您的方式获得最接近的索引后,我们可以索引到数据帧中以获得相应的值: # your way for indexes inds = df.abs().idxmin(axis=1) # for values: either this (being deprecated..) vals = df.lookup(df.index, inds) # or

我有一份以下形式的文件:

第一偏差 二次偏差 最近偏差 最小偏差的列名 -0.5 楠 -0.5 第一偏差 -0.4 -0.8 -0.4 第一偏差
按照您的方式获得最接近的索引后,我们可以索引到数据帧中以获得相应的值:

# your way for indexes
inds = df.abs().idxmin(axis=1)

# for values: either this (being deprecated..)
vals = df.lookup(df.index, inds)

# or this with numpy's "fancy" indexing
vals = df.to_numpy()[np.arange(len(df)), df.columns.get_indexer(inds)]

# then putting to frame
df["closest deviation"] = vals
df["column name of smallest deviation"] = inds
得到

   first deviation  second deviation  closest deviation column name of smallest deviation
0             -0.5               NaN               -0.5                   first deviation
1             -0.4              -0.8               -0.4                   first deviation

注:
正在被弃用,所以另一种方法是转到numpy域并在那里建立索引。由于
inds
是列名,但numpy不知道它们,我们使用
get\u indexer

hi@Paul1911获取它们的整数位置,我想在期望的结果中,右下角的值也应该读取第一个设备,对吗?hi Mustafa,是的,正确。谢谢,我已经调整好了:)谢谢。据我所知,我试着写了一个答案,希望能有帮助。它确实有帮助,非常感谢!现在开始工作了!