- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有如下所示的数据。我想用权重列划分每隔一行。有没有自动的方法来做到这一点?我的数据有几列。
我要查找的是 A/Weight 的结果应替换为 A 列,C/Weight 的结果应替换为 C 列,依此类推,直到最后一对列。
A B C D Weight
0 2.056494 -3.002088 0.516822 -1.338846 0.40
1 0.082295 1.387734 -0.495226 1.119553 0.50
2 0.298618 -0.130158 0.804705 -0.120110 0.25
3 0.178088 1.137238 1.331856 -0.472720 0.50
4 -0.378670 1.649041 -0.240723 2.044113 0.65
5 3.602587 1.152502 -0.170646 -0.961922 0.50
6 -0.285846 -0.154891 1.492879 0.752487 0.56
7 -0.412809 1.076796 -2.001025 -0.954021 0.25
我有这样的东西,但它不起作用:
results=results.iloc[:, 0::2].div(results['Weight'], axis=0)
下面的代码适用于所有其他列(B/A 和 D/C)。但我只需要“重量”列的静态分母。
results_201.iloc[:,1::2] /= results_201.iloc[:,::2].values
感谢您阅读本文并提供帮助!
最佳答案
我们需要 broadcasting
这里。因此,一种方法是使用底层数组数据进行原位编辑,就像这样 -
df.iloc[:,:-1:2] = df.iloc[:,:-1:2].values / df.iloc[:,[-1]].values
sample 运行-
In [62]: df
Out[62]:
A B C D Weight
0 2.0565 -3.0021 0.5168 -1.3388 0.4000
1 0.0823 1.3877 -0.4952 1.1196 0.5000
2 0.2986 -0.1302 0.8047 -0.1201 0.2500
3 0.1781 1.1372 1.3319 -0.4727 0.5000
4 -0.3787 1.6490 -0.2407 2.0441 0.6500
5 3.6026 1.1525 -0.1706 -0.9619 0.5000
6 -0.2858 -0.1549 1.4929 0.7525 0.5600
7 -0.4128 1.0768 -2.0010 -0.9540 0.2500
In [63]: df.iloc[:,:-1:2] = df.iloc[:,:-1:2].values / df.iloc[:,[-1]].values
In [64]: df
Out[64]:
A B C D Weight
0 5.1412 -3.0021 1.2921 -1.3388 0.4000
1 0.1646 1.3877 -0.9905 1.1196 0.5000
2 1.1945 -0.1302 3.2188 -0.1201 0.2500
3 0.3562 1.1372 2.6637 -0.4727 0.5000
4 -0.5826 1.6490 -0.3703 2.0441 0.6500
5 7.2052 1.1525 -0.3413 -0.9619 0.5000
6 -0.5104 -0.1549 2.6659 0.7525 0.5600
7 -1.6512 1.0768 -8.0041 -0.9540 0.2500
一个更省心的替代方案是将整个数据作为数组 View 获取并在该数组本身上处理 -
In [96]: df
Out[96]:
A B C D Weight
0 2.0565 -3.0021 0.5168 -1.3388 0.4000
1 0.0823 1.3877 -0.4952 1.1196 0.5000
2 0.2986 -0.1302 0.8047 -0.1201 0.2500
3 0.1781 1.1372 1.3319 -0.4727 0.5000
4 -0.3787 1.6490 -0.2407 2.0441 0.6500
5 3.6026 1.1525 -0.1706 -0.9619 0.5000
6 -0.2858 -0.1549 1.4929 0.7525 0.5600
7 -0.4128 1.0768 -2.0010 -0.9540 0.2500
In [97]: a = df.values
In [98]: a[:,:-1:2] /= a[:,[-1]]
In [99]: df
Out[99]:
A B C D Weight
0 5.1412 -3.0021 1.2921 -1.3388 0.4000
1 0.1646 1.3877 -0.9905 1.1196 0.5000
2 1.1945 -0.1302 3.2188 -0.1201 0.2500
3 0.3562 1.1372 2.6637 -0.4727 0.5000
4 -0.5826 1.6490 -0.3703 2.0441 0.6500
5 7.2052 1.1525 -0.3413 -0.9619 0.5000
6 -0.5104 -0.1549 2.6659 0.7525 0.5600
7 -1.6512 1.0768 -8.0041 -0.9540 0.2500
关于python - 每隔一列除以最后一列中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44976323/
你有没有注意到 Excel Vba 代码中除法 2/60 的问题?我正在使用 Excel 2013。请测试以下代码: Sub test1() Dim A As Integer Dim B As Int
我正在运行长时间的模拟。我将结果记录到 vector 中以计算有关数据的统计信息。我意识到,理论上,这些样本可能是除以零的结果。这只是理论上的,我很确定事实并非如此。为了避免修改代码后重新运行模拟,我
我有一些可以包含字母、数字和“#”符号的字符串。 我想删除除以“#”开头的单词以外的数字 下面是一个例子: "table9 dolv5e #10n #dec10 #nov8e 23 hello" 预期
我有以下代码,问题是我尝试将 Double 除以 Int factorial :: Int -> Int factorial 0 = 1 factorial e = e * (factorial e-
我有以下查询,它试图计算出某种产品占产品总数的百分比。 IE:[产品数量]/[产品总数] = 百分比 ;WITH totalCount AS( SELECT CAST(COUN
我正在解析字符串,然后需要将其转换为数字。但如果它包含除以 0 的例子 String str1 = "1+2+3-5/0+4+6" String str2 = "1+2+3-4/0.000 +4+6"
这个问题已经有答案了: Right Shift to Perform Divide by 2 On -1 (6 个回答) 已关闭 9 年前。 在阅读 Collections.reverse 的 Jav
我是 C++ 新手。我听说除以0会导致运行时错误,但是当我尝试时,它抛给我一个编译器错误C2124并且没有创建目标文件,所以编译器会自动运行代码以查看它是否可以在创建之前执行目标文件? (顺便说一句,
我试图在 codefights.com 上解决这个问题,方法是找出最大的质因数并将该数字除以质因数的幂。 int highestPower(int N, int A) { int B =A, j=0,
我对在不同计算机上运行程序有疑问。 我用 C++\windows 7 64 位\Visual Studio 编写了一个程序,该程序在我的计算机上完美运行。 当我尝试在另一台计算机(Windows 7
这个问题已经有答案了: Division in C++ not working as expected (6 个回答) 已关闭 9 年前。 Helo,我是编程新手,遇到了一个问题,我有一个整数,例如
我正在做某事,但遇到了一个我不明白的问题。 double d = 95.24 / (double)100; Console.Write(d); //Break point here 控制台输出是 0.
我需要仅使用按位运算符(例如 ! & ^ ~ 和移位)来计算数字 (a/(2**b)。我得到了以下提示,但我是 C 新手,我不知道什么是代码含义: int bias = x>0 ? 0 : ((1>b
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Java Integer division: How do you produce a double? 当我
嗨,我正在尝试将 numpy 数组分成两部分,并在一个循环中进行此操作,例如: main_array.shape = (50, 400, 400, 3) for i = 0: sub_array_1
这是片段: String myTime = someTime / 1e9d + ","; someTime 是使用 System.nanoTime() 派生的。 1e9d 在这里做什么? 最佳答案 1
Random random = new Random(); int randomx = random.Next(0, 240); 这是我获取随机数的方式,从 0 到 240,如何才能只获取除以 5 的
我一直在处理一个应用程序,因为图像表现得很奇怪,所以我决定打开 Wall 标志,看看是否有任何奇怪的事情发生。它揭示了一个新的警告: character.cpp(364): warning C4723
我是 Android Studio 的新手,我正在开发一个计算器应用程序。现在,当我除以零时,自然会收到错误消息“Infinity”,但如果我想将其更改为“不能除以零”,我该怎么做呢? impor
如何显示每 5 日创建一个新行的表中的数据 ? 例子 data: [1,2,3,4,5,6]; 成分: {{item}} 预期的: | 1 | 2 | 3 | 4 | 5 | | 6 |
我是一名优秀的程序员,十分优秀!