从大熊猫给定日期的周数

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

我有两列日期和值的数据帧。 我想添加一个名为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 2019年4月2日10 1 2019年3月2日20 2 28-01-2019 30 3 20-01-2019 40

假设给定的日期是2019年5月2日。然后,我需要的方式添加一列WEEK_NUMBER使得日期列日期多少周回是给定的日期。 输出应该是

    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

我怎么能在大熊猫做到这一点

pandas
1个回答
3
投票

首先用to_datetime dayfirst=True转换列日期时间,然后从右侧的rsub减,转换timedeltas到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
© www.soinside.com 2019 - 2024. All rights reserved.