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

如何对比pandas DataFrame两个不同列的行级值并生成布尔列表

pandas两列行级相等对比方案

直接使用pandas逐元素相等运算符==即可得到每行的对比结果,返回值为布尔类型的Series,完全适配后续真假占比统计、饼图绘制的需求:

# 行级逐元素对比,每个位置的取值对应当前行两列是否相等
compare_res = df['toss_winner'] == df['winner']

适配饼图绘制的扩展操作

得到布尔Series后,可以直接调用value_counts()统计两类结果的数量,直接用于绘图:

# 统计True和False的出现次数
count_res = compare_res.value_counts()
# 快速绘制饼图示例
count_res.plot(
    kind='pie',
    autopct='%1.1f%%',
    labels=['抛硬币获胜方即比赛获胜方', '抛硬币获胜方未赢得比赛']
)

你之前使用的equals()方法作用是判断两个Series整体是否完全一致,仅返回单个布尔值,因此无法输出行级对比结果。
如果两列存在缺失值(NaN),直接使用==会在对应行返回NaN,可通过eq方法指定缺失值匹配规则:

# 示例:将两列的空值都填充为同一个占位符后再对比,缺失值视为相等
compare_res = df['toss_winner'].eq(df['winner'], fill_value='__empty__')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 01:54:02