Pandas Datetime:计算两列中日期之间的周数

时间:2013-07-01 21:36:48

标签: python datetime pandas

假设我有一个包含日期的两列数据框,我想创建一个新列,其值是这些日期之间的月数。

>df

Index   Date1         Date2
1       2012/03/07    2013/03/16
2       2012/12/05    2012/12/25
3       2010/06/30    2013/05/19
4       2002/11/02    2011.06.08


df["Date1"]= pd.to_datetime(df["Date1"])
df["Date2"]= pd.to_datetime(df["Date2"])

Date1将始终位于date2之前。我目前的这种方法需要大约10个步骤,我很确定有一个更简单的方法来做到这一点。想法?

2 个答案:

答案 0 :(得分:5)

请参阅此链接:http://pandas.pydata.org/pandas-docs/dev/timeseries.html#time-deltas

(df['Date2']-df['Date1']).apply(lambda x: x/np.timedelta64(1,'M'))

表示numpy> = 1.7(如果您使用的是1.6.1,请参阅链接)

我不确定它会对分数做什么。 (通常我会除以np.timedelta64(1,'D')然后除以30来得到一个小数的月数(作为一个浮点数)

答案 1 :(得分:-1)

我不知道如何在python中执行此操作,但我会采取以下步骤:

  • 将日期转换为自纪元以来的天数
  • 从date2
  • 减去date1
  • 除以7