当前位置: 首页 > 面试题库 >

根据递减值计算新值

梁丘洲
2023-03-14
问题内容

问题:

我想做的是Series通过连续减少基础数字逐步减少a中的值。

我不知道的术语这个-我想我可以做的东西cumsumdiff,但我觉得我自己领先于白费力气有…

起始代码:

import pandas as pd

ALLOWANCE = 100
values = pd.Series([85, 10, 25, 30])

所需的输出:

desired = pd.Series([0, 0, 20, 30])

理由:

ALLOWANCE-的底数开始-中的每个值Series都减去余量,这是津贴额本身,因此发生以下步骤:

  • 从100开始,我们可以将85其完全删除,因此变为0,我们现在15保留为ALLOWANCE
  • 下一个值是10并且我们仍然15可用,因此它0再次变为并且我们已经5离开。
  • 下一个值是25-我们只剩5下了,所以变成了20现在,我们不再有任何余量。
  • 下一个值是30,并且由于没有余量,因此该值保持为30

问题答案:

继你最初的想法cumsumdiff,你可以写:

>>> (values.cumsum() - ALLOWANCE).clip_lower(0).diff().fillna(0)
0     0
1     0
2    20
3    30
dtype: float64

这是values减去津贴的累计总和。负值会被裁剪为零(因为我们在计算透支额之前才关心数字)。从那里,您可以计算出差异。

但是,如果第一个值可能大于容差,则首选以下两行变化:

s = (values.cumsum() - ALLOWANCE).clip_lower(0)
desired = s.diff().fillna(s)

这将NaN用“第一值-余量”值填充第一值。因此,在其中的情况下ALLOWANCE被降低到75时,它返回desired作为Series([10, 10, 25, 30])



 类似资料:
  • 在GL ES 2.0 Functions texture 2DLod中片段着色器不可用。我需要移植GLSL着色器。 在GL ES 2.0中,我只能使用纹理2D(采样器2D采样器、向量2坐标、浮动偏差) 告诉我如何计算相当于已知值LOD(详细程度)的偏差值?

  • 我正在尝试计算多个列的中值,但是我的数据有点奇怪。它看起来像下面的示例。 在表中到列表示该值的出现次数。我想计算中位数的出现次数。 例如对于ID = 1 是我想要创建的计算。 对于ID=2 我尝试过使用<code>rep()或<code>rep(10,2)),这就是我所期望的。我只是努力创建一个列表或向量,每个列都有重复。

  • 问题内容: 我试图弄清楚如何将数组中的一组字母值向下移动一个步骤。例如,我的数组包含值(“ d”,“ e”,“ f”,“ g”,“ h”),而我想将其更改为(“ c”,“ d”,“ e”,“ f” “, “G”)。这是我正在使用的代码: 当我使用正值时,字母会改变;但是,负数似乎根本不起作用。 问题答案: PHP已超载了字符串;并非如此。你可以做同样的事情更清洁的代码,以及: 这是一个演示。请注意

  • 本文向大家介绍awk 根据表格数据计算列中的平均值,包括了awk 根据表格数据计算列中的平均值的使用技巧和注意事项,需要的朋友参考一下 示例 给定一个;用作列定界符的文件。我们使用以下程序在第二列中计算值的平均值,提供的输入是学生组的成绩列表: 该程序的输出为2.125。 请记住,它NR保存了要处理的行数,END因此在块中它保存了文件中的总行数。 请记住,在许多应用程序(监视,统计)中,中位数是更

  • 我需要根据屏幕大小运行不同的行为。所以我有不同类型的屏幕。如果屏幕很小,计算中的变量必须是40。随着它的增长,变量数需要减少。 实例 非常小的屏幕宽度-480 |变量=40 小屏幕宽度-720|变量=30 中等屏幕宽度-1600 |变量=20 大屏幕宽度-2560 |变量=10 这是我的一些代码

  • 本文向大家介绍根据多个过滤器JavaScript从JSON数据计算平均值,包括了根据多个过滤器JavaScript从JSON数据计算平均值的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个像这样的对象数组- 我们需要编写一个包含一个这样的数组的JavaScript函数。 该函数应执行以下操作- 将重复的供应商分组为一个唯一的单独对象(通过重复,我们指的是具有相同“ SupplierName”