好,这是我的情况(省去了一些没意思的事情)
来自csv文件的数据框,但我得到有关商店信息的信息,例如
日期,商店ID,…,库存计数
这些行按日期排序,但不按StoreID排序,并且在此时间序列中商店的数量可以很大。
我想要什么:
我想在InventoryCount从一天到前一天的变化中向数据框添加一列。 为此,我正在尝试:
for name, group in df.groupby(["StoreID"]):
for i in range(1, len(group)):
group.loc[i, 'InventoryChange'] = group.loc[i, 'InventoryCount'] - group.loc[i-1, 'InventoryCount']
答案 0 :(得分:0)
您的代码显式地遍历行,这在熊猫上是一个糟糕的主意,无论从美学角度还是从性能角度而言都是如此。相反,将最后两行替换为:
group['InventoryChange'] = group[ 'InventoryCount'].diff(n)
n
是您感兴趣的天数-示例中为1天,评论中为8天。