下面是 python 中相当大的数据帧的一小部分。
ID invoiceDate
1 2017-07-18
2 2017-10-17
3 2017-08-20
4 2017-09-05
5 2017-08-20
6 2017-11-08
7 2017-09-17
8 2017-11-10
9 2017-08-14
10 2017-08-24
Run Code Online (Sandbox Code Playgroud)
鉴于利息期介于2017-07-13和 之间2017-11-21,则相当于 20 周。我需要将每个值映射invoiceDate到相应的周数。例如,2017-07-18映射到第 1 周(第一周分别在 和 开始和结束2017-07-13)2017-07-19或2017-08-20第 6 周(第六周分别在 和 开始2017-08-17和结束2017-08-23)。是invoiceDate对象类型。
与 freq 'W-Wed' 一起使用to_period改变一周的开始。
s = df['invoiceDate'].dt.to_period('W-Wed').dt.week
df['Week_Num'] = (s - s.min() + 1)
Run Code Online (Sandbox Code Playgroud)
df['Week_Num'] = (df['invoiceDate'].dt.to_period('W-Wed').dt.week - df['invoiceDate'].dt.to_period('W-Wed').dt.周.分钟() + 1)
输出:
productID invoiceDate Week_Num
0 1 2017-07-18 1
1 2 2017-10-17 14
2 3 2017-08-20 6
3 4 2017-09-05 8
4 5 2017-08-20 6
5 6 2017-11-08 17
6 7 2017-09-17 10
7 8 2017-11-10 18
8 9 2017-08-14 5
9 10 2017-08-24 7
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
519 次 |
| 最近记录: |