【问题标题】:pandas timedelta to int as a vectorized operationpandas timedelta to int 作为矢量化操作
【发布时间】:2016-06-23 14:17:36
【问题描述】:

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

但这给了我一个 Timedelta 对象,而我想要一个 int。 Timedelta 有一个属性.days,它返回一个int。但是我看不到如何向量化这个操作来创建一个如下所示的“days ago as 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

【问题讨论】:

    标签: python datetime pandas


    【解决方案1】:

    .apply获取days属性可以获取你的days为ints

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 2016-06-20
      • 2016-11-16
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 2020-04-25
      相关资源
      最近更新 更多