簡體   English   中英

Python pandas 時間增量到時間戳

[英]Python pandas time delta to timestamp

我從 Excel 文件中導入了 dataframe。 該文件包含以分鍾為單位的速度和持續時間表。 我的最終目標是將其轉換為 dataframe,時間步長為 1 秒。 應該為每個時間步重復速度。 這是為了導入另一個工具。

我很難理解從哪里開始。 我能找到的唯一可行的方法是遍歷每一行以計算時間戳並附加到新的 dataframe。 這似乎真的很低效。

有人可以在這里指導我嗎?

示例輸入如下。

速度 時間
0 5 0.75
1 6 3.12
2 14 5.10
3 38 19.11
4 7 4.32
5 5 1.50
6 3 11.10
7 3 1.50
8 9 3.60
9 3 19.11
10 38 5.10
11 5 3.12
12 4 0.75

樣品 output

時間戳 速度
0 00:00:00 5
1 00:00:01 5
... ... ...
45 00:00:45 6
46 00:00:46 6
47 00:00:47 6
.. .. ..

您可以從持續時間列的累積總和創建日期時間索引,然后重新索引到 1 秒的頻率。 重新索引時,使用method="bfill"向后填充現有值。 前任:

import pandas as pd

df = pd.DataFrame({"speed": [5,6,14],
                   "time": [0.75,3.12,5.10]})

# arbitrary date as reference
refdate = pd.Timestamp("2022-01-01")
df.index = refdate + pd.to_timedelta(df["time"].cumsum(), unit="min").dt.floor("s")

df = df.reindex(
    pd.date_range(refdate, df.index.max(), freq='1s'),
    method="bfill"
    )
df[df.index > "2022-01-01 00:00:43"]
Out[62]: 
                     speed  time
2022-01-01 00:00:44      5  0.75
2022-01-01 00:00:45      5  0.75
2022-01-01 00:00:46      6  3.12
2022-01-01 00:00:47      6  3.12
2022-01-01 00:00:48      6  3.12
                   ...   ...
2022-01-01 00:08:54     14  5.10
2022-01-01 00:08:55     14  5.10
2022-01-01 00:08:56     14  5.10
2022-01-01 00:08:57     14  5.10
2022-01-01 00:08:58     14  5.10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM