这是设置:
我有两个(整数索引)列,start和month_delta. start有时间戳(它的内部类型是np.datetime64[ns])并且month_delta是整数。
我想很快产生包括在每个日期时间的列start,在几个月内完成相应数量的偏移month_delta。我该怎么做呢?
我尝试过但不起作用的事情:
apply 太慢了。DateOffset对象添加到一系列datetime64[ns]dtype(或 a DatetimeIndex)。timedelta64对象;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)
糟糕!有什么建议?