如何为列值设置编号?

问题描述 投票:0回答:1

我有一个这样的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

有什么解决办法吗?

python pandas date week-number
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.