有兩個 pandas 表,每個表包含兩列。第一時間,還有心跳。第二個是收縮壓。
撰寫創建第三個表的代碼,其中對于每個血壓測量,同一行包含最近心率測量的時間和值,前提是必須在血壓測量之前完成且不早于 15 分鐘前
我試圖用 truncate 和 iloc 解決它,但我沒有成功。
import pandas as pd
df_hr = pd.DataFrame({'time':
[datetime.datetime(2022,1,1,7,40),
datetime.datetime(2022,1,1,9,50),
datetime.datetime(2022,1,1,10,1)],
'hr':
[60, 90, 100]}).set_index('time')
df_bp = pd.DataFrame({'time':
[datetime.datetime(2022,1,1,10),
datetime.datetime(2022,1,1,8)],
'bp': [140, 120]}).set_index('time')
uj5u.com熱心網友回復:
讓我們merge_asof用direction='backward'and toleranceof做15min:
pd.merge_asof(
df_bp.sort_index(),
df_hr.sort_index(),
on='time',
direction='backward',
tolerance=pd.Timedelta('15min'),
)
注意:
關鍵字引數direction=backward選擇右側DataFrame中'on'鍵小于或等于左側鍵的最后一行
結果
time bp hr
0 2022-01-01 08:00:00 120 NaN
1 2022-01-01 10:00:00 140 90.0
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/535913.html
