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

Posted

技术标签:

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

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

您可以使用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

【讨论】:

以上是关于熊猫合并具有相同值和相同索引的行的主要内容,如果未能解决你的问题,请参考以下文章

如何获取熊猫数据框中的行,列中具有最大值并保留原始索引?

将具有相同索引的熊猫系列列表转换为字典

熊猫将具有相同索引的一列值组合到列表中[重复]

我需要以相同的随机方式随机打乱两个熊猫数据帧的行

Pandas DataFrame:合并具有相同 ID 的行

使用python选择具有相同索引的dataFrame中的行