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

如何使用Python的Pandas库实现逐行数据两两对比?

改进你的宝可梦数据两两对比代码

嘿,作为编程新手能想到用Pandas来处理数据对比已经超棒啦!咱们先看看你现有代码里的小问题,再一步步把它改成你想要的效果~

你的当前代码每次都固定取第0行(iloc[0])和第i行对比,这样只能实现第一行和后面所有行的配对,没法覆盖「第2行和第3、4行」「第3行和第4行」这类你需要的组合。下面咱们来修正:

步骤1:先筛选目标数据

首先把Type 1为Electric的宝可梦数据单独拎出来,避免处理无关数据:

import pandas as pd

# 假设你的原始数据集是df,先筛选Electric类型的宝可梦
electric_pokemon = df[df["Type 1"] == "Electric"].reset_index(drop=True)
# reset_index是为了让筛选后的索引从0开始连续递增,方便后续循环

步骤2:实现逐行两两对比(双重循环法)

用双重循环,外层循环遍历每一行的索引i,内层循环从i+1开始遍历后续所有行的索引j,这样就能覆盖所有「前一行 vs 后一行」的组合:

# 遍历每一行i
for i in range(len(electric_pokemon)):
    # 获取第i行的宝可梦信息(假设你的DataFrame有Name列,没有的话可以用索引标识)
    pokemon_i = electric_pokemon.iloc[i]["Name"]
    hp_i = electric_pokemon.iloc[i]["HP"]
    
    # 遍历i之后的所有行j
    for j in range(i+1, len(electric_pokemon)):
        pokemon_j = electric_pokemon.iloc[j]["Name"]
        hp_j = electric_pokemon.iloc[j]["HP"]
        
        # 这里写你的对比逻辑,比如输出结果或做差值计算
        print(f"对比: {pokemon_i} vs {pokemon_j}")
        print(f"{pokemon_i} HP: {hp_i}, {pokemon_j} HP: {hp_j}")
        # 示例:判断HP高低
        if hp_i > hp_j:
            print(f"{pokemon_i}的HP更高!\n")
        elif hp_i < hp_j:
            print(f"{pokemon_j}的HP更高!\n")
        else:
            print("两者HP相同!\n")

步骤3:更简洁的优化方案(用itertools.combinations)

如果觉得双重循环有点繁琐,可以用Python标准库itertools里的combinations函数,它能直接生成所有不重复的两两行组合(自动跳过反向配对,比如不会同时出现「皮卡丘vs雷丘」和「雷丘vs皮卡丘」):

from itertools import combinations

# 遍历所有符合要求的两两行组合
for row1, row2 in combinations(electric_pokemon.itertuples(), 2):
    pokemon1 = row1.Name
    hp1 = row1.HP
    pokemon2 = row2.Name
    hp2 = row2.HP
    
    # 同样执行你的对比逻辑
    print(f"对比: {pokemon1} vs {pokemon2}")
    print(f"{pokemon1} HP: {hp1}, {pokemon2} HP: {hp2}")
    # 这里可以添加你需要的对比判断逻辑

关键提醒

  • 原代码的核心问题是固定取iloc[0],而不是动态获取当前循环的第i行;
  • reset_index(drop=True)很重要,筛选后的DataFrame索引可能不连续,重置后能保证循环时索引从0开始依次递增;
  • 如果你的数据集没有Name列,可以用行的位置(比如宝可梦{i+1})或者其他唯一标识来替换。

这样修改后,就能完美实现你想要的「每一行都与后续所有行依次对比」的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 15:47:42