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

如何按条件合并DataFrame中指定类型的连续行对?

解决方法

先筛选出仅Type为'A'的行,再将每连续两行(即一对消息)归为一组,最后合并每组的消息内容并保留Type字段即可。

完整代码示例

import pandas as pd
import numpy as np

# 示例输入数据
data = {'Type': ['A', 'A', 'B', 'A', 'A', 'C'],
        'Message': ['Start', 'End', 'Hello', 'Start2', 'End2', 'World']}
df = pd.DataFrame(data)

# 1. 只保留Type为'A'的行
filtered_df = df[df['Type'] == 'A'].copy()

# 2. 为每两行创建一个分组ID,确保成对合并
filtered_df['pair_id'] = np.arange(len(filtered_df)) // 2

# 3. 按分组合并消息,保留Type字段
merged_df = filtered_df.groupby('pair_id', sort=False).agg(
    Type=('Type', 'first'),  # 每组Type都是'A',取任意一个都可以
    Message=('Message', ''.join)
).reset_index(drop=True)

print(merged_df)

输出结果

Type    Message
0    A    StartEnd
1    A  Start2End2

注意事项

  • 此方法基于Type为'A'的行严格成对出现的前提(即行数为偶数)。若存在奇数行,最后一组会仅包含一条消息,可根据实际需求添加丢弃或标记逻辑。
  • 使用sort=False保证分组时保留原始数据的顺序,避免打乱消息对的先后关系。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:50:36