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

基于条件合并Pandas DataFrame中的行

按SI.No.合并DataFrame行的解决方案

核心思路

通过groupby按SI.No.分组,再用聚合函数将同一分组内的多行数据合并为单行,保留各列的有效非空值。

代码实现

假设你的CSV文件已读取为DataFrame,执行以下代码:

import pandas as pd

# 读取CSV数据
df = pd.read_csv('test_data.csv')

# 按SI.No.分组,合并同一编号的行(取各列第一个非空值)
merged_df = df.groupby('SI.No.', as_index=False).first()

# 如果需要合并同一列的多个非空值(比如文本拼接),可以用下面的聚合方式
# merged_df = df.groupby('SI.No.', as_index=False).agg(lambda x: ', '.join(x.dropna().astype(str)))

代码说明

  • groupby('SI.No.'):将DataFrame按SI.No.列的数值分组,把编号相同的行归为一组。
  • as_index=False:保留SI.No.作为普通列,不设为索引,方便后续使用。
  • .first():对每个分组的每一列,取第一个非空值(自动忽略NaN),刚好匹配你提供的数据结构(同一编号的行各列互补,无重复非空值)。
  • 如果存在同一列多值的情况,替换为agg(lambda x: ', '.join(x.dropna().astype(str))),可以把同列的非空值用逗号拼接成字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 01:16:01