假設傳感器連接到 3 個攀爬結構的登山者,這些傳感器在隨機時間捕獲某個測量值。資料被捕獲到下面的資料幀中(資料幀比這個長很多):
df = pd.DataFrame({
'Name': ['Cody', 'Dustin', 'Dustin', 'Cody', 'Ryan', 'Dustin', 'Ryan', 'Cody'],
'Timestamp': ['08:10:23', '08:12:58', '08:15:02', '08:19:43', '08:21:00', '08:30:17', '08:34:01', '08:34:59'],
'Category': ['Body Temp', 'Altitude', 'Heart Rate', 'Body Temp', 'Heart Rate', 'Heart Rate', 'Altitude', 'Altitude'],
'Body Temp': [35.9, np.nan, np.nan, 36.2, np.nan, np.nan, np.nan, np.nan],
'Altitude': [np.nan, 7, np.nan, np.nan, np.nan, np.nan, 12, 6],
'Heart Rate': [np.nan, np.nan, 75, np.nan, 71, 69, np.nan, np.nan]
})
Name Timestamp Category Body Temp Altitude Heart Rate
0 Cody 08:10:23 Body Temp 35.9 NaN NaN
1 Dustin 08:12:58 Altitude NaN 7.0 NaN
2 Dustin 08:15:02 Heart Rate NaN NaN 75.0
3 Cody 08:19:43 Body Temp 36.2 NaN NaN
4 Ryan 08:21:00 Heart Rate NaN NaN 71.0
5 Dustin 08:30:17 Heart Rate NaN NaN 69.0
6 Ryan 08:34:01 Altitude NaN 12.0 NaN
7 Cody 08:34:59 Altitude NaN 6.0 NaN
目的是根據每個登山者和時間戳不斷更新每一行的測量值,以便每個登山者的每個后續行都將更新其測量值。
所以結果應該是這樣的:
Name Timestamp Category Body Temp Altitude Heart Rate
0 Cody 08:10:23 Body Temp 35.9 NaN NaN
1 Dustin 08:12:58 Altitude NaN 7.0 NaN
2 Dustin 08:15:02 Heart Rate NaN 7.0 75.0
3 Cody 08:19:43 Body Temp 36.2 NaN NaN
4 Ryan 08:21:00 Heart Rate NaN NaN 71.0
5 Dustin 08:30:17 Heart Rate NaN 7.0 69.0
6 Ryan 08:34:01 Altitude NaN 12.0 71.0
7 Cody 08:34:59 Altitude 36.2 6.0 NaN
到目前為止,我一直在考慮使用.sort_value()將登山者分開并從那里作業。但是我很難弄清楚如何不斷更新每一行。是否需要函式或迭代?
uj5u.com熱心網友回復:
如果每個登山者的測量值存在這樣的值,那么這項作業本質上似乎是用先前的值填充缺失值,所以groupby.ffill應該這樣做:
out = df[['Name']].join(df.groupby('Name').ffill())
輸出:
Name Timestamp Category Body Temp Altitude Heart Rate
0 Cody 08:10:23 Body Temp 35.9 NaN NaN
1 Dustin 08:12:58 Altitude NaN 7.0 NaN
2 Dustin 08:15:02 Heart Rate NaN 7.0 75.0
3 Cody 08:19:43 Body Temp 36.2 NaN NaN
4 Ryan 08:21:00 Heart Rate NaN NaN 71.0
5 Dustin 08:30:17 Heart Rate NaN 7.0 69.0
6 Ryan 08:34:01 Altitude NaN 12.0 71.0
7 Cody 08:34:59 Altitude 36.2 6.0 NaN
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/472469.html
標籤:Python 熊猫 数据框 麻木的 熊猫-groupby
上一篇:Pandas:使用帶有字串變數的df.eval作為條件過濾
下一篇:如何創建字典來查找丟棄的零?
