从组操纵Pandas数据框

时间:2020-07-02 22:01:13

标签: python pandas dataframe

好,这是我的情况(省去了一些没意思的事情)

来自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']

1 个答案:

答案 0 :(得分:0)

您的代码显式地遍历行,这在熊猫上是一个糟糕的主意,无论从美学角度还是从性能角度而言都是如此。相反,将最后两行替换为:

 group['InventoryChange'] = group[ 'InventoryCount'].diff(n)

n是您感兴趣的天数-示例中为1天,评论中为8天。