从给定日期开始的星期数(以熊猫为单位)

时间:2019-02-05 11:23:25

标签: pandas

我有一个包含两列日期和值的数据框。
我想添加一个名为week_number的新列,该列基本上是从给定日期返回多少周

import pandas as pd
df = pd.DataFrame(columns=['Date','value'])

df['Date'] = [ '04-02-2019','03-02-2019','28-01-2019','20-01-2019']

df['value'] = [10,20,30,40]

df
         日期值
0 04-02-2019 10
1 03-02-2019 20
2 28-01-2019 30
3 20-01-2019 40

假设给定日期为05-02-2019。 然后,我需要以一种方式添加一列week_number,以使Date列日期返回给定日期多少周。
输出应为

    Date  value   week_number  

0 04-02-2019 10 1
1 03-02-2019 20 1
2 28-01-2019 30 2
3 20-01-2019 40 3

我该怎么在熊猫里做

1 个答案:

答案 0 :(得分:3)

首先用dayfirst=Trueto_datetime将列转换为日期时间,然后用rsub从右侧减去,将timedelta s转换为days,取模7并添加1

df['Date'] = pd.to_datetime(df['Date'], dayfirst=True)
df['week_number'] = df['Date'].rsub(pd.Timestamp('2019-02-05')).dt.days // 7 + 1
#alternative 
#df['week_number'] = (pd.Timestamp('2019-02-05') - df['Date']).dt.days // 7 + 1
print (df)
        Date  value  week_number
0 2019-02-04     10            1
1 2019-02-03     20            1
2 2019-01-28     30            2
3 2019-01-20     40            3