1 回答

TA貢獻1817條經驗 獲得超14個贊
一個想法是首先過濾重復的索引值以進行重新采樣,就像您的解決方案一樣,然后過濾重復到added系列,按樓層更改索引并通過排序添加到原始索引值:
print (orders)
cum
timestamp
2020-03-01 01:11:42.520 -674.0
2020-03-01 02:00:48.778 -700.0
2020-03-01 02:00:58.850 -702.0
2020-03-01 11:45:23.741 -1249.0
2020-03-02 01:56:51.021 -1229.0
2020-03-02 01:56:51.021 -917.0
2020-03-02 01:56:51.021 -837.0
2020-03-02 01:56:54.021 -67.0
mask = orders.index.duplicated()
cum = (orders.loc[~mask, 'cum']
.resample('1S')
.bfill()
.ffill()
)
added = orders.loc[mask, 'cum']
added.index = added.index.floor('S')
cum = added.append(cum).sort_index()
print (cum.tail(10))
timestamp
2020-03-02 01:56:47 -1229.0
2020-03-02 01:56:48 -1229.0
2020-03-02 01:56:49 -1229.0
2020-03-02 01:56:50 -1229.0
2020-03-02 01:56:51 -1229.0
2020-03-02 01:56:51 -917.0
2020-03-02 01:56:51 -837.0
2020-03-02 01:56:52 -67.0
2020-03-02 01:56:53 -67.0
2020-03-02 01:56:54 -67.0
Name: cum, dtype: float64
添加回答
舉報