如何将ID分组在一列中并放入新列中



我有一个数据帧,如下所示:

>>_ID>td style="text-align:centre!">60.0<1.0>>td style="text align:central;">39.50<1.0>>td style="ext-align:centre">58.5<19.2>>td style="ext-align:centre">45.9<11.5><2>>>td style="ext-align:center;">49.5>td style="ext-align:centre!">60.0>td style="ext-align:centre!">55.8<14.5>
HR O2SatTempDBPResp
96 99.2 36.50
95 100.068.5
110 85.8 37.95
100 95.5 35.45
89 98.0 38.10 65.4 10.53
98 1100.0 36.5015.8
102 1100.0 37.4511595.038.054

要获得的输出称为Multi-index数据帧。正如您所提到的,数据来自PhysioNet Sepsis Challenge 2019,有一列包含ICULOS,这是每个患者的重要信息。您可以将数据帧转换为包含此列的多索引数据帧。如下所示:

假设您包含ICULOS列:

>><1th>P_ID<2th>ICULID操作系统>td style="ext-align:center;">60.0<1.0>>td style="text align:central;">37.95>td style="ext-align:ccenter;">19.2>td style="ext-align:centre">45.9<11.5>><2>>>td style="ext-align:centre!">60.0<16.0>>td style="ext-align:center;">55.8<14.5>
HR O2SatTempDBPResp
96 99.2 36.501
95 100.0 39.50 110 85.858.5
100 95.5 35.452
89 98.0 38.10 65.4 10.5
98 100.0 36.50 102 10.00 37.454
115 95.0 38.0542

让我们想象一下以下DataFrame:

col1  col2
0    A     1
1    A     2
2    A     3
3    B     4
4    B     5
5    C     6
6    C     7
7    D     8

您可以maskduplicated密钥:

df['col1'] = df.mask(df['col1'].duplicated(), '')

输出:

col1  col2
0    A     1
1          2
2          3
3    B     4
4          5
5    C     6
6          7
7    D     8

注意。请注意,数据帧的内容发生了变化,现在不能使用第2行中的值A,例如

您可以尝试:

df.loc[df['P_ID'].eq(df['P_ID'].shift()), 'P_ID'] = ''
df = df.set_index('P_ID').reset_index()

输出:

>>> df
P_ID   HR  O2Sat   Temp   DBP  Resp
0    1   96   99.2  36.50  60.0  10.0
1        95  100.0  39.50  68.5  12.0
2    2  110   85.8  37.95  58.5  19.2
3       100   95.5  35.45  45.9  11.5
4    3   89   98.0  38.10  65.4  10.5
5        98  100.0  36.50  49.5  15.8
6    4  102  100.0  37.45  60.0  16.0
7       115   95.0  38.05  55.8  14.5

最新更新