Pandas合并具有相同值和相同索引的行

4

我有一个名为SubjectID的索引和一个名为Visit的列的数据框。主体有多个访问,Value1Value2要么是整数值,要么是N/A。我想合并那些具有相同SubjectID和相同Visit编号的行。

以下是我的数据帧:

SubjectID    Visit    Value1    Value2    
B1           1         1.57      N/A
B1           1         N/A       1.75
B1           2         N/A       1.56

我希望它看起来像这样:

Subject ID    Visit     Value1    Value2
B1            1          1.57      1.75
B1            2          N/A       1.56

我试图使用groupby()来解决这个问题,但我不确定如何考虑Visit列中的索引和值。
1个回答

3
你可以使用groupby.firstgroupby.last来获取每个组内每一列的第一个/最后一个非空值。对于示例数据,两种方法的输出结果相同:
df = df.groupby(['SubjectID', 'Visit']).first().reset_index()

生成的输出:
  SubjectID  Visit  Value1  Value2
0        B1      1    1.57    1.75
1        B1      2     NaN    1.56

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接