gpt4 book ai didi

python - 如何计算 Pandas 每周的变化?

转载 作者:行者123 更新时间:2023-11-30 22:32:32 27 4
gpt4 key购买 nike

我有以下不同时间段的 df 值:

    date        A   B   C
0 2016-01-01 5 7 2
1 2016-01-02 6 12 15
...
2 2016-01-08 9 5 16
...
3 2016-12-24 5 11 13
4 2016-12-31 3 52 22

我想创建一个新的数据框,按日期计算每个切片的 w-w 变化。例如,我希望新表中 1 月 1 日到 1 月 7 日的所有切片均为空白。我希望 1 月 8 日的值是给定切片的 1 月 8 日值减去该切片的 1 月 1 日值。然后,我希望 1 月 9 日的值是给定切片的 1 月 9 日值减去 1 月 2 日切片的值。如此等等,一直向下。

示例表如下所示:

    date        A   B   C
0 2016-01-01 0 0 0
1 2016-01-02 0 0 0
...
2 2016-01-08 4 -2 14
...
3 2016-12-24 4 12 2
4 2016-12-31 -2 41 9

您可以假设偏移量始终为 7。换句话说,没有丢失日期。

最佳答案

@Unatiel 的答案在这种情况下是正确的,没有丢失日期,应该被接受。

但我想在这里针对缺少日期的情况发布修改,供任何感兴趣的人使用。来自 docs :

The shift method accepts a freq argument which can accept a DateOffset class or other timedelta-like object or also a offset alias

from pandas.tseries.offsets import Week
res = ((df - df.shift(1, freq=Week()).reindex(df.index))
.fillna(value=0)
.astype(int))

print(res)
A B
date
2016-01-01 0 0
2016-01-02 0 0
2016-01-03 0 0
2016-01-04 0 0
2016-01-05 0 0
2016-01-06 0 0
2016-01-07 0 0
2016-01-08 31 46
2016-01-09 4 20
2016-01-10 -51 -65
2016-01-11 56 5
2016-01-12 -51 24
.. ..
2016-01-20 34 -30
2016-01-21 -28 19
2016-01-22 24 8
2016-01-23 -28 -46
2016-01-24 -11 -60
2016-01-25 -34 -7
2016-01-26 -12 -28
2016-01-27 -41 42
2016-01-28 -2 48
2016-01-29 35 -51
2016-01-30 -8 62
2016-01-31 -6 -9

关于python - 如何计算 Pandas 每周的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45450769/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com