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

Python DataFrame 操作:如何将DataFrame中的每两行合并为一行?

解决DataFrame两行合并为一行的需求

这个需求实现起来很直观,咱们可以利用pandas的groupby结合自定义聚合函数来完成,具体步骤如下:

1. 预处理(如果Tags列是字符串格式)

首先确认你的Tags列是实际的列表类型,如果它看起来是列表但存储为字符串(比如"[k1, k3k, ...]"),需要先转换为列表:

import ast
import pandas as pd

# 假设你的原始DataFrame名为df
df['Tags'] = df['Tags'].apply(ast.literal_eval)

2. 生成分组键并执行聚合

我们可以用索引整除2的方式,把每两行划分为一组,然后对每组进行针对性的聚合操作:

# 生成分组标识:每两行一组,索引0和1为组0,2和3为组1,以此类推
group_keys = df.index // 2

# 分组聚合生成目标DataFrame
merged_df = df.groupby(group_keys).agg(
    Shape=('Shape', lambda x: ''.join(x)),  # 把两个"P"拼接成"PP"
    Number of Tags=('Number of Tags', 'sum'),  # 标签数量直接求和(5+5=10)
    Tags=('Tags', lambda x: [item for sublist in x for item in sublist])  # 合并两个子列表
).reset_index(drop=True)

3. 验证结果

执行完上述代码后,merged_df就会完全符合你的预期:

  • 总行数为250(500行每两行合并一组)
  • Shape列全部为PP
  • Number of Tags列全部为10
  • Tags列是包含10个元素的合并列表

这种方法逻辑清晰,处理效率也很高,适合处理大规模的DataFrame数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 16:57:36