我有两列日期和值的数据帧。 我想添加一个名为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
我怎么能在大熊猫做到这一点
首先用to_datetime
dayfirst=True
转换列日期时间,然后从右侧的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