假设您是一家制造小发明的工厂的所有者,并且您正在尝试计划未来的库存。您有一个销售预测(每年介于1到5个小发明之间)。您的工厂每年生产4个小发明。
我们可以求出生产的小物件与销售的小物件之间的累计差额,以查找任何年份的库存:
# --- Initialize df ---
df = pd.DataFrame({'year':list(range(2010,2020,1)),
'gizmos_made':[4]*10,
'gizmos_sold':[2,3,2,1,5,2,2,3,4,2]})
df = df.set_index('year')
# --- Calculate yearly inventory changes ---
df['gizmo_inventory'] = (df['gizmos_made'] - df['gizmos_sold']).cumsum()
df
但是,可以说,小物件实际上是在两年后到期的(也就是说,2018年生产的小物件将在2020年到期)。客户不在乎是否收到了全新的或即将过期的Gizmo,但是我们始终在努力首先从仓库中取出最旧的Gizmos。
什么是有效的方法(最好是矢量化或映射)?
我有一个非常冗长的实现,它创建一个inventory
列,其中填充了年份列表(每个Gizmo对应一个),然后在循环中从每个列表中提取最旧的Gizmos。但是,这是不可扩展的,因为实际上,我需要在具有数百万个小控件的情况下部署它。