我有一个这样的df。
timeframe week
0 2023-06-14 24
1 2023-06-21 25
2 2023-06-28 26
3 2023-07-05 27
4 2023-06-12 28
5 2023-06-19 29
6 2023-06-26 30
我想将第 30 周的编号设为 0,第 29 周的编号设为 1,依此类推。
timeframe week
0 2023-06-14 6
1 2023-06-21 5
2 2023-06-28 4
3 2023-07-05 3
4 2023-06-12 2
5 2023-06-19 1
6 2023-06-26 0
有什么解决办法吗?
一个简单的解决方案是从 30 中减去周:
df['week'] = df['week'].rsub(30)
# or
df['week'] = 30 - df['week']
然而,这不会考虑可能大于 30 的周(它们将变为负值)。如果您的目标是使最大周数为 0 并减少其他周数:
df['week'] = df['week'].rsub(df['week'].max())
输出:
timeframe week
0 2023-06-14 6
1 2023-06-21 5
2 2023-06-28 4
3 2023-07-05 3
4 2023-06-12 2
5 2023-06-19 1
6 2023-06-26 0