You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中合并Pandas DataFrame中相同id的行?

如何合并Pandas DataFrame中相同id的行?

输入DataFrame

idtest1test2
one10
one30
two3
three105

期望结果

idtest1test2
one1030
two3
three105

解决方案

你可以使用groupby结合first()方法实现,该方法会为每个分组的每一列取第一个非空值,完全匹配你的需求:

  1. 先构造示例DataFrame(假设空值对应Pandas中的NaN):
import pandas as pd
import numpy as np

df = pd.DataFrame({
    'id': ['one', 'one', 'two', 'three'],
    'test1': [10, np.nan, np.nan, 10],
    'test2': [np.nan, 30, 3, 5]
})
  1. 执行合并操作:
merged_df = df.groupby('id', as_index=False).first()

说明

  • groupby('id'):按照id列对DataFrame分组
  • as_index=False:保留id作为普通列,而非索引
  • first():对每个分组的每一列,跳过空值取第一个有效数据

如果同一分组的同一列存在多个非空值,可根据业务需求替换first()为其他聚合函数,比如sum()求和、max()取最大值等。

内容的提问来源于stack exchange,提问作者user12217822

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 03:33:28