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

如何合并pandas DataFrame中相同productID的重复行

解决方法

你可以通过pandas的分组聚合操作快速完成行合并,该场景下有多种可用实现方式:

  • 方法1:使用groupby + first(),会自动取每个分组下各列的第一个非空有效值,是最适配当前场景的写法
    代码示例:
    # 按productID分组,取各列第一个非空值,as_index=False保证productID不作为索引
    df_result = df.groupby('productID', as_index=False).first()
    
  • 方法2:使用groupby + sum(),因为NaN和数值相加结果为数值本身,也能得到正确结果
    代码示例:
    df_result = df.groupby('productID', as_index=False).sum()
    
  • 方法3:使用数据透视表pivot_table实现
    代码示例:
    df_result = df.pivot_table(
        index='productID',
        values=['units sold', 'units in inventory'],
        aggfunc='first'
    ).reset_index()
    

完整可运行的测试代码如下:

import pandas as pd
import numpy as np

# 构造和示例一致的原始DataFrame
raw_data = {
    'productID': [101, 102, 103, 104, 101, 102, 103, 104],
    'units sold': [32, 45, 15, 27, np.nan, np.nan, np.nan, np.nan],
    'units in inventory': [np.nan, np.nan, np.nan, np.nan, 18, 12, 30, 23]
}
df = pd.DataFrame(raw_data)

# 执行合并
df_result = df.groupby('productID', as_index=False).first()
# 输出结果和预期完全一致
print(df_result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:42:01