当前位置: 首页 > 知识库问答 >
问题:

如何使用熊猫计算库存何时用完?

越昊穹
2023-03-14

假设我有这样一个数据帧:

Item        Check Date   Inventory
Apple       1/1/2020     50
Banana      1/1/2020     80
Apple       1/2/2020     75
Banana      1/2/2020     300
Apple       2/1/2020     100
Apple       2/2/2020     98
Banana      2/2/2020     341
Apple       2/3/2020     95
Banana      2/3/2020     328
Apple       2/4/2020     90
Apple       2/5/2020     85
Banana      2/5/2020     325

我想从最大库存计数开始找到给定项目库存的平均变化率,然后用它来计算哪一天库存会达到零。所以对于苹果来说,它将从2/1开始:2 3 5 5/4 = 3.75,同样对于香蕉来说,从2/213 3/2=8开始。

由于有不同的项目,我用了:

apples=df[df[“Item”]=“apples”]

要仅获取苹果的数据帧,请使用:

苹果["库存"]. idxmax()

查找具有最大库存计数的行。

然而,这给了我原始数据帧行的行标签。所以我不确定接下来该怎么办,因为我的计划是先用最大库存量将日期从行中删除,然后忽略之前的任何日期。

共有1个答案

裴建华
2023-03-14

您仍然可以使用idxmax,但可以使用transform

s=df[df.index>=df.groupby('Item').Inventory.transform('idxmax')]
out=s.groupby('Item')['Inventory'].apply(lambda  x : -x.diff().mean())
Item
Apple     3.75
Banana    8.00
Name: Inventory, dtype: float64
 类似资料:
  • 问题内容: 问题 我想按组计算。而且我不知道如何对列进行排序,以便对每个组的结果进行排序和确定。 原始数据: 我想要的结果 注意:时间col的类型是timedelta64 [ns] 试 没有得到想要的结果。 希望 因为有5000万行,所以不仅可以解决问题,而且代码可以快速运行。 问题答案: 您可以使用与和汇总: 如果需要删除列中使用的行: 您还可以覆盖列:

  • 问题内容: 我有下表。我想根据以下公式计算按每个日期分组的加权平均值。我可以使用一些标准的常规代码来执行此操作,但是假设此数据在pandas数据框中,是否有比通过迭代更简单的方法来实现此目的? 2012年1月1日w_avg = 0.5 (60 / sum(60,80,100))+ .75 (80 / sum(60,80,100))+ 1.0 *(100 / sum(60,80,100)) 2012

  • 我有一个熊猫数据框(df),有四列,我想要一个新的列来表示这四列的平均值:df['mean']=df。平均数(1) 到目前为止还不错。但当我将结果保存到csv文件时,我发现: 我想我可以在“平均值”列中强制使用格式,但知道为什么会发生这种情况吗? 我使用winpython与python 3.3.2和熊猫0.11.0

  • 问题内容: 如果我有: 和 通常 一个数组 如何同时考虑引用变量来计算实际内存使用量? 问题答案: 如果您想要一个准确的答案,那就不能了。至少不是以任何简单的方式。该主题说明更多。 Bragaadeesh和Bakkal的答案的麻烦在于它们忽略了开销。每个数组还存储诸如它具有的维数,它有多长时间以及垃圾收集器使用的一些东西之类的东西。 对于简单的估算,应该使用其他答案中的计算并加上100-200字节

  • 我想在我的数据的每一列中找到< code>NaN的数目。

  • 我试图在将数据帧与另一个数据帧合并后更改数据帧中的值,并遇到一些问题(在合并之前似乎不是问题)。 我正在索引和更改数据帧中的值: 随后,我使用merge连接了两个索引(左外连接)(我意识到left.join(右)也可以)。此后,当我使用iloc执行相同的值分配时,我收到以下警告: 对链接文档的审查不会澄清理解,因此,我是否使用了错误的iloc切片方法?(请记住,出于代码的目的,我需要基于位置的切片