我在使用带有扩展窗口的自定义转换时遇到问题。我有一个功能:
def minutes_since_previous(x):
'''given datetime-indexed series x,
returns time difference in minutes between the last datetime
and the datetime of the previous nonnull value in each column.'''
x = pd.Series(x) # assumes aready sorted, else add .sort_index()
tfinal=x.index[-1]
allprev = x[:-1].dropna() #all prev nonnulls.
if (len(allprev) > 0):
tprev = allprev.index[-1]
return (tfinal - tprev)
else:
return np.nan
还有一系列:
^{pr2}$函数在整个系列中的工作与预期一致:
In [117]:
minutes_since_previous(x)
Out[117]:
Timedelta('0 days 08:40:17')
但是当应用于扩展窗口时,我失去了索引的日期时间性质,而不是给出第一个时间戳之后的时间增量,而是得到整数差:
In [118]:
x.expanding().apply(minutes_since_previous)
Out[118]:
datetime
2017-06-05 22:01:20.000 NaN
2017-06-05 22:25:24.235 1.0
2017-06-05 22:33:13.000 2.0
2017-06-05 23:10:06.208 3.0
2017-06-05 23:11:40.437 4.0
2017-06-05 23:30:32.911 5.0
2017-06-06 06:19:41.934 6.0
2017-06-06 06:37:11.432 7.0
2017-06-06 06:41:37.000 8.0
dtype: float64
也许.expanding()会在内部重置索引,但如果是这样,我如何才能获得所需的内容?在
我搜索了“熊猫扩展索引”,找到了一个关于multiple columns的问题, 还有很多,很多都是关于各种各样的重采样,但是没有一个涉及丢失索引信息。在
谢谢。。。在
目前没有回答
相关问题 更多 >
编程相关推荐