我有一個value從07:10:00到分組的以下代碼17:30:00。
import pandas as pd
dict = {"datetime" : ["2022-10-26 07:12:13", "2022-10-26 09:14:43", "2022-10-26 17:25:19"], "value" : [1, 3, 5]}
df = pd.DataFrame(dict)
df["time"] = pd.to_datetime(df["datetime"])
df = (
df.groupby([pd.Grouper(freq=f"5Min", key="time")])[
"value"
]
.sum()
.reset_index(name="value")
)
df = df.rename(columns={"time": "interval start"})
df.insert(
1, "interval end", df["interval start"] pd.Timedelta("5Min")
)
但是我怎樣才能延長這個組從00:00:00to開始23:59:59?
uj5u.com熱心網友回復:
簡單的實作方法:
- 首先獲取最大、最小時間以找到實際的 start_time 和 end_time(您要求一天開始時間/結束時間)
- 創建具有所需時間限制的主資料框,然后與實際資料框合并。
包括更改
import pandas as pd
dict = {"datetime" : ["2022-10-26 07:12:13", "2022-10-26 09:14:43", "2022-10-26 17:25:19"], "value" : [1, 3, 5]}
df = pd.DataFrame(dict)
df["time"] = pd.to_datetime(df["datetime"])
m_df = pd.DataFrame(data={"time": [df["time"].min().replace(hour=0, minute=0,second=0), df["time"].max().replace(hour=23, minute=59,second=59)]})
m_df = m_df.groupby(pd.Grouper(freq=f"5Min", key="time")).sum().reset_index()
df = (
df.groupby([pd.Grouper(freq=f"5Min", key="time")])[
"value"
]
.sum()
.reset_index(name="value")
)
df = m_df.merge(df, on='time', how='left').fillna(0)
df = df.rename(columns={"time": "interval start"})
df.insert(
1, "interval end", df["interval start"] pd.Timedelta("5Min")
)
print(df.head())
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/524028.html
標籤:Python熊猫数据框
上一篇:如何設定自定義星期映射
下一篇:熊貓重新采樣插值行為很奇怪
