我的熊貓資料框中有以下列。我的意圖是在一定范圍(0,10)內每小時增加 1。我可以輕松地說:df['time'] = np.arange(0,10)獲取這些值,但是我丟失了日期時間格式。

要創建日期時間,我使用了以下代碼:
df['time'] = (
datetime(
start.year, start.month, start.day, hour=1, tzinfo=timezone.utc
))
我不反對僅迭代資料框并將它們增加 1 或在給定范圍內正確創建它的方法。任何意見,將不勝感激。
uj5u.com熱心網友回復:
您可以使用timedelta算術。或使用date_range。前任:
import pandas as pd
import numpy as np
df = pd.DataFrame()
num = 10
start = pd.Timestamp("now").floor("d") # current date, h/m/s set zero
# add range as timedelta to start date:
df["Time"] = start pd.to_timedelta(np.arange(num), unit="H")
# even simpler: date_range
df["Time2"] = pd.date_range(start, periods=num, freq="H")
df
Time Time2
0 2022-10-06 00:00:00 2022-10-06 00:00:00
1 2022-10-06 01:00:00 2022-10-06 01:00:00
2 2022-10-06 02:00:00 2022-10-06 02:00:00
3 2022-10-06 03:00:00 2022-10-06 03:00:00
4 2022-10-06 04:00:00 2022-10-06 04:00:00
5 2022-10-06 05:00:00 2022-10-06 05:00:00
6 2022-10-06 06:00:00 2022-10-06 06:00:00
7 2022-10-06 07:00:00 2022-10-06 07:00:00
8 2022-10-06 08:00:00 2022-10-06 08:00:00
9 2022-10-06 09:00:00 2022-10-06 09:00:00
uj5u.com熱心網友回復:
可能不是最優雅的,但這已經足夠了:
for i in range(0, df.shape[0]):
for j in range(0, 10):
df['time'][(i*10) j] = df['time'][(i*10) j].replace(hour=j)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512096.html
