2016-07-28 72 views
1

在我现有的表中,我有日期列,并从该列我能够找出weekday.By使用to_timedelta我创建了week_start列,但它没有给出正确的日期。 下面的代码是:嗨,我想添加weekstart列

final_data['weekday'] = final_data['DateOfInvoice'].dt.weekday 

final_data['Weekstart'] = final_data['DateOfInvoice'] - pd.to_timedelta(final_data['weekday'],unit='ns', box=True, coerce=True) 

输出是:

Date  weekday weekstart 
2016-07-23 5   2016-07-22 
+0

如果我的答案解决了你的问题,那么你可以接受它,将在我的答案左上角有一个空的刻度标记 – EdChum

回答

1

IIUC你可以构造一个TimedeltaIndex,并从另一列减:

In [152]: 
df['weekstart'] = df['Date'] - pd.TimedeltaIndex(df['weekday'], unit='D') 
df 

Out[152]: 
     Date weekday weekstart 
0 2016-07-23  5 2016-07-18 

其实平日列不必要:

In [153]: 
df['weekstart'] = df['Date'] - pd.TimedeltaIndex(df['Date'].dt.dayofweek, unit='D') 
df 

Out[153]: 
     Date weekday weekstart 
0 2016-07-23  5 2016-07-18 
+0

非常感谢你...它的工作原理我是非常新的Python,我陷入了另一个问题。如果你可以帮助我,我可以解决经理给出的任务... –

+0

如果你有一个新的问题,请发表一个新的问题,回答评论中的问题是不是好的做法 – EdChum