我找不到这个的非for循环版本。假设这是我的输入:
In [94]: df
Out[94]:
N experiment color value value2
0 145000 0 red 0.30 0.363953
1 14000 1 red 0.31 0.218978
2 13000 2 red 0.29 0.948070
3 15000 0 yellow 0.31 0.620201
4 1200 1 yellow 0.32 0.567513
5 1400 2 yellow 0.31 0.318197
6 40000 0 green 0.29 0.947226
7 3000 1 green 0.31 0.084243
8 7000 2 green 0.32 0.961020
[9 rows x 5 columns]
实验0是我的控制。我对各种颜色做了这个实验。我想通过匹配颜色实验0规范化所有行。你知道吗
In [104]: df
Out[104]:
N experiment color value value2 scaled_value scaled_value2
0 145000 0 red 0.30 0.363953 1.000000 1.000000
1 14000 1 red 0.31 0.218978 1.033333 0.590786
2 13000 2 red 0.29 0.948070 0.966667 2.604732
3 15000 0 yellow 0.31 0.620201 1.000000 1.000000
4 1200 1 yellow 0.32 0.567513 1.032258 0.914220
5 1400 2 yellow 0.31 0.318197 1.000000 0.512737
6 40000 0 green 0.29 0.947226 1.000000 1.000000
7 3000 1 green 0.31 0.084243 1.068966 0.088680
8 7000 2 green 0.32 0.961020 1.103448 1.014541
[9 rows x 7 columns]
似乎我想把实验零的参数精确到它们自己的列中,以便于划分,但是我不能让叠加/旋转/合并正常工作。我在for循环中使用了.at和赋值,但感觉很不对。你知道吗
接下来的步骤是规范化几个列,并创建由(N,value)、(N,value2)、(N,other\ u值)等计算出的误差下限
一种方法是使用
transform
(这里使用idxmin
,尽管有许多替代方法)来获取我们要用作分母的行的索引:一步一步地,我们首先找到分母指数:
然后我们可以用这个索引到框架中:
因为我们自己处理对齐,所以我们需要调用
.values
下拉到底层数组,否则pandas会试图比我们聪明,并根据索引正确对齐。你知道吗然后我们分开:
最后加入它们,重新命名新列:
相关问题 更多 >
编程相关推荐