pandas timedelta to int作为向量化操作

时间:2016-06-23 14:17:36

标签: python datetime pandas

我有一个带有日期列的数据框(不是日期时间索引)。我想创建另一列,其值为今天减去日期列中的日期。我可以将其作为矢量化操作ts['days ago'] = dt.date.today() -ts['foo']

但这给了我一个Timedelta对象,而我想要一个int。 Timedelta有一个属性.days,它返回一个int。但是我无法看到如何对这个操作进行矢量化以使“天前作为int”列如下所示,因为向量减法给了我一个序列,而不是Timedelta。

rng = pd.date_range('6/1/2016', periods=10, freq='D')
ts = pd.Series(rng,  index=range(10)).to_frame()
ts.columns = ['foo']
ts['days ago'] = dt.date.today() -ts['foo'] 
ts['days ago as int'] = "?"

print ts.ix[3]['days ago'].days
# doesn't work
ts['days ago as int'] = ts.ix[:]['days ago'].days
ts

1 个答案:

答案 0 :(得分:2)

.apply获取日期属性可以获得ints

的日期
ts["days ago int "] = ts['days ago'].apply(lambda x:x.days)