我正在使用類似于下面的資料框。我必須比較行的時間戳。如果行的時間戳在 1 小時內,則從具有值的行中獲取名稱并將其填充到其他沒有值的行中。
當前資料
timestamp name Maths Science History
0 2021-08-09 10:18:48 Anni
1 2021-08-09 10:18:51 89 34
2 2021-08-09 10:19:26 76
3 2021-08-11 12:39:24 43
4 2021-08-11 12:39:45 Jeff 65
5 2021-08-11 12:45:05 Jerry 65
預期資料
timestamp name Maths Science History
0 2021-08-09 10:18:48 Anni
1 2021-08-09 10:18:51 Anni 89 34
2 2021-08-09 10:19:26 Anni 76
3 2021-08-11 12:39:24 Jeff 43
4 2021-08-11 12:39:45 Jeff 65
5 2021-08-11 12:45:05 Jerry 65
但我找不到這個問題的邏輯。任何的想法?
uj5u.com熱心網友回復:
你能試試這個嗎?
n=0
first = df.timestamp[0]
empty_list = []
for time in df.timestamp:
diff = time - first
if diff > pd.Timedelta("1h"):
n =1
first = time
empty_list.append(n)
df["helper"] = empty_list
df["name"] = df.groupby("helper")["name"].ffill().bfill()
del df["helper"]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/383064.html
