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

时间:2016-09-22 18:26:48

标签: pandas indexing merge rows

我有一个DataFrame,其索引名为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 个答案:

答案 0 :(得分: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