如何计算从8月开始的python中的周数并逐月累加

时间:2018-10-08 20:18:10

标签: python pandas

enter image description here例如,我有两列,我想创建另一列显示星期数。

例如:2018年8月3日,应该给定1周,依此类推。

我正在使用pandas库来执行此操作,但这是从一月开始的第几周,因此我在8月的第31周得到了获取,而不是在8月的第1周得到了获取。

我尝试过:

data_18['App Start Week'] = data_18['Started Week'].dt.week 

从1月开始,我给了我几周的时间。

然后我从中减去30以得到起始月份为8月,以计算周数。

但是,由于日期再次要到明年,所以从第一周开始,依此类推。

随着一年的变化,我面临着很多问题。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

您可以将差额与固定日期进行比较,将其转换为天数并使用底数分割:

df = pd.DataFrame({'dates': ['08-03-2018', '08-20-2018', '11-11-2018',
                             '12-25-2018', '01-01-2019']})

df['dates'] = pd.to_datetime(df['dates'])

df['week_num'] = (df['dates'] - pd.Timestamp('08-01-2018')).dt.days // 7 + 1

print(df)

       dates  week_num
0 2018-08-03         1
1 2018-08-20         3
2 2018-11-11        15
3 2018-12-25        21
4 2019-01-01        22