相关疑难解决方法(0)

Pandas:快速将可变月份数添加到时间戳列

这是设置:

我有两个(整数索引)列,startmonth_delta. start有时间戳(它的内部类型是np.datetime64[ns])并且month_delta是整数。

我想很快产生包括在每个日期时间的列start,在几个月内完成相应数量的偏移month_delta。我该怎么做呢?

我尝试过但不起作用的事情:

  • apply 太慢了。
  • 您不能将一系列DateOffset对象添加到一系列datetime64[ns]dtype(或 a DatetimeIndex)。
  • 您也不能使用 Seriestimedelta64对象;Pandas 默默地将基于月份的 timedeltas 转换为大约 30 天长的基于纳秒的 timedeltas。(哎呀!没有默默失败是怎么回事?)

目前,我正在迭代所有不同的值,month_delta并在我创建tshift的 a 的相关部分执行该数量的操作DatetimeIndex,但这是一个可怕的混杂:

new_dates = pd.Series(pd.Timestamp.now(), index=start.index)
date_index = pd.DatetimeIndex(start)
for i in xrange(month_delta.max()):
    mask = (month_delta == i)
    cur_dates = pd.Series(index=date_index[mask]).tshift(i, freq='M').index
    new_dates[mask] = cur_dates
Run Code Online (Sandbox Code Playgroud)

糟糕!有什么建议?

python datetime numpy pandas

5
推荐指数
1
解决办法
3224
查看次数

标签 统计

datetime ×1

numpy ×1

pandas ×1

python ×1