我有一个带有日期列的数据框(不是日期时间索引)。我想创建另一列,其值为今天减去日期列中的日期。我可以将其作为矢量化操作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
答案 0 :(得分:2)
.apply
获取日期属性可以获得ints
ts["days ago int "] = ts['days ago'].apply(lambda x:x.days)