【问题标题】:Pandas merging rows with the same value and same index熊猫合并具有相同值和相同索引的行
【发布时间】:2017-01-31 11:06:07
【问题描述】:

我有一个 DataFrame,其索引名为 SubjectID 和一列 Visit。对于Value1 和Value2,受试者有多次访问和整数值或不适用。我想折叠具有相同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 列中的索引和值。

【问题讨论】:

    标签: pandas indexing merge rows


    【解决方案1】:

    您可以使用groupby.first 或groupby.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
    

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2020-11-27
      • 2018-07-17
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      相关资源
      最近更新 更多