2017-03-06 109 views

回答

3

東西,我認爲你需要to_timedelta

df["new_date"]=df["Start_date"]-pd.to_timedelta(df["days"], unit='D') 

樣品:

np.random.seed(120) 
start = pd.to_datetime('2015-02-24') 
rng = pd.date_range(start, periods=10) 

df = pd.DataFrame({'Start_date': rng, 'days': np.random.choice(np.arange(10), size=10)}) 
print (df) 
    Start_date days 
0 2015-02-24  7 
1 2015-02-25  0 
2 2015-02-26  8 
3 2015-02-27  4 
4 2015-02-28  1 
5 2015-03-01  7 
6 2015-03-02  1 
7 2015-03-03  3 
8 2015-03-04  8 
9 2015-03-05  9 

df["new_date"]=df["Start_date"]-pd.to_timedelta(df["days"], unit='D') 
print (df) 
    Start_date days new_date 
0 2015-02-24  7 2015-02-17 
1 2015-02-25  0 2015-02-25 
2 2015-02-26  8 2015-02-18 
3 2015-02-27  4 2015-02-23 
4 2015-02-28  1 2015-02-27 
5 2015-03-01  7 2015-02-22 
6 2015-03-02  1 2015-03-01 
7 2015-03-03  3 2015-02-28 
8 2015-03-04  8 2015-02-24 
9 2015-03-05  9 2015-02-24 
+0

它是如何工作的? – jezrael

+0

它工作得很好。謝謝。 –