从pandas数据框中的日期列减去日期列

时间:2017-03-06 08:27:44

标签: pandas python-datetime

我的数据框中有两列。一列是日期(df [" Start_date]),其他是天数。我想减去天数列(df ["天&#] 34;])来自日期栏。

我正在尝试这样的事情

df["new_date"]=df["Start_date"]-datetime.timedelta(days=df["days"])

1 个答案:

答案 0 :(得分:4)

我认为你需要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