我应该如何在数据帧中组合相似时间的行?

2024-05-19 03:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在处理一个模拟数据集。现在,我想合并时差(增量时间)小于10分钟的行中的数据。我该怎么做

原始数据:

charttime   hadm_id age is_male HR  RR  SPO2    Systolic_BP Diastolic_BP    MAP PEEP    PO2
0   2119-07-20 17:54:00 26270240    NaN NaN NaN NaN NaN 103.0   66.0    81.0    NaN NaN
1   2119-07-20 17:55:00 26270240    68.0    1.0 113.0   26.0    NaN NaN NaN NaN NaN NaN
2   2119-07-20 17:57:00 26270240    NaN NaN NaN NaN 92.0    NaN NaN NaN NaN NaN
3   2119-07-20 18:00:00 26270240    68.0    1.0 114.0   28.0    NaN 85.0    45.0    62.0    16.0    NaN
4   2119-07-20 18:01:00 26270240    NaN NaN NaN NaN 91.0    NaN NaN NaN NaN NaN
5   2119-07-30 21:00:00 26270240    68.0    1.0 90.0    16.0    93.0    NaN NaN NaN NaN NaN
6   2119-07-30 21:00:00 26270240    68.0    1.0 89.0    9.0 94.0    NaN NaN NaN NaN NaN
7   2119-07-30 21:01:00 26270240    68.0    1.0 89.0    10.0    93.0    NaN NaN NaN NaN NaN
8   2119-07-30 21:05:00 26270240    NaN NaN NaN NaN NaN 109.0   42.0    56.0    NaN NaN
9   2119-07-30 21:10:00 26270240    68.0    1.0 90.0    10.0    93.0    NaN NaN NaN NaN NaN

合并增量时间小于10分钟的行后,我想要的输出:

(当要分组的某些行的同一列中存在重复数据时,仅取第一行)

charttime   hadm_id age is_male HR  RR  SPO2    Systolic_BP Diastolic_BP    MAP PEEP    PO2
0   2119-07-20 17:55:00 26270240    68.0    1.0 113.0   26.0    92.0    103.0   66.0    81.0    16.0    NaN2119-07-30 20:00:00  26270240    68.0    1.0 90.0    16.0    93.0    NaN NaN NaN NaN NaN
1   2119-07-30 21:00:00 26270240    68.0    1.0 89.0    9.0 94.0    109.0   42.0    56.0    NaN NaN

我该怎么做


1条回答
网友
1楼 · 发布于 2024-05-19 03:20:49

首先,我将时间戳列四舍五入为10分钟:

df['charttime'] = pd.to_datetime(df['charttime']).dt.floor('10T').dt.time

然后,我将根据要比较的列(例如,hadm_idcharttime)删除重复项:

df.drop_duplicates(subset=['charttime', 'hadm_id'], keep='first', inplace=True)

相关问题 更多 >

    热门问题