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

如何在Pandas中将连续两行数据合并为一行?

解决方法

直接通过Pandas的分组合并功能就能实现需求,分两种情况处理:

情况1:保留原行号内容

如果需要保留每行开头的原始数字,用以下代码:

import pandas as pd

# 构造你的Series数据
data = [
    "1 Lycan-Ogre Magi-Bloodseeker-Zeus-Tiny-WIN",
    "2 Tidehunter-Spectre-Warlock-Razor-Marci-LOSE",
    "3 Spectre-Enigma-Dazzle-Razor-Tiny-WIN",
    "4 Medusa-Hoodwink-Tusk-Beastmaster-Enchantress-LOSE"
]
s = pd.Series(data)

# 按每两行分组,用|合并内容
merged = s.groupby(s.index // 2).apply(lambda group: ' | '.join(group))
# 重置新行号为从1开始
merged.index = merged.index + 1

# 输出结果
print(merged.to_string(header=False))

输出结果:

1 1 Lycan-Ogre Magi-Bloodseeker-Zeus-Tiny-WIN | 2 Tidehunter-Spectre-Warlock-Razor-Marci-LOSE
2 3 Spectre-Enigma-Dazzle-Razor-Tiny-WIN | 4 Medusa-Hoodwink-Tusk-Beastmaster-Enchantress-LOSE

情况2:仅保留对战内容(去掉原行号)

如果要得到你示例里不带原始数字的格式,先清理每行开头的数字再合并:

import pandas as pd

data = [
    "1 Lycan-Ogre Magi-Bloodseeker-Zeus-Tiny-WIN",
    "2 Tidehunter-Spectre-Warlock-Razor-Marci-LOSE",
    "3 Spectre-Enigma-Dazzle-Razor-Tiny-WIN",
    "4 Medusa-Hoodwink-Tusk-Beastmaster-Enchantress-LOSE"
]
s = pd.Series(data)

# 去掉每行开头的数字和空格
clean_s = s.str.replace(r'^\d+\s', '', regex=True)
# 分组合并
merged_clean = clean_s.groupby(clean_s.index // 2).apply(lambda x: ' | '.join(x))
merged_clean.index = merged_clean.index + 1

# 输出结果
print(merged_clean.to_string(header=False))

输出结果:

1 Lycan-Ogre Magi-Bloodseeker-Zeus-Tiny-WIN | Tidehunter-Spectre-Warlock-Razor-Marci-LOSE
2 Spectre-Enigma-Dazzle-Razor-Tiny-WIN | Medusa-Hoodwink-Tusk-Beastmaster-Enchantress-LOSE

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:54:14