我有一個像熊貓一樣的df
time lower_boundary mark_price
2022-04-05T02:51:36.147633Z -116914.699042 17.174680
2022-04-05T02:51:41.246010Z -116746.074569 17.263622
2022-04-05T02:51:46.345506Z -116677.835351 17.371671
其中 time 是索引,每行之間有 5 秒的差異。我希望將一秒的差異添加到索引列。
time lower_boundary
2022-04-05T02:51:36.147633Z -116914.699042
2022-04-05T02:51:37.147633Z None
2022-04-05T02:51:38.147633Z None
2022-04-05T02:51:39.147633Z None
2022-04-05T02:51:40.147633Z None
2022-04-05T02:51:41.246010Z -116746.074569
有什么辦法可以做到這一點?
uj5u.com熱心網友回復:
您可以使用date_range創建頻率為 1 秒的范圍,然后使用reindex:
df.index = pd.to_datetime(df.index).floor('S')
df = df.reindex(pd.date_range(df.index.min(), df.index.max(), freq='S'))
輸出:
lower_boundary mark_price
2022-04-05 02:51:36 00:00 -116914.699042 17.174680
2022-04-05 02:51:37 00:00 NaN NaN
2022-04-05 02:51:38 00:00 NaN NaN
2022-04-05 02:51:39 00:00 NaN NaN
2022-04-05 02:51:40 00:00 NaN NaN
2022-04-05 02:51:41 00:00 -116746.074569 17.263622
2022-04-05 02:51:42 00:00 NaN NaN
2022-04-05 02:51:43 00:00 NaN NaN
2022-04-05 02:51:44 00:00 NaN NaN
2022-04-05 02:51:45 00:00 NaN NaN
2022-04-05 02:51:46 00:00 -116677.835351 17.371671
uj5u.com熱心網友回復:
采用:
s =['2022-04-05T02:51:36.147633Z', '2022-04-05T02:51:41.246010Z', '2022-04-05T02:51:46.345506Z']
vals = [1,2,3]
df = pd.DataFrame(vals, columns = ['val'], index = pd.to_datetime(s).floor('S'))
temp = pd.date_range(df.index[0], df.index[-1], freq='S')
df.reindex(temp)
輸出:

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/455762.html
