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

如何在Python中打印Pandas Series中值为偶数的键值对

如何在Pandas Series中打印偶数值对应的索引与值

嘿,我一眼就看到问题出在哪了——那个SyntaxError完全是因为你在print()里写了赋值语句var[i]=m,Python根本不允许在表达式里塞赋值操作,这就是报错的直接原因。而且这里还有个逻辑bug:你遍历sd时拿到的i是Series里的值,不是索引位置,用var[i]去取索引完全不对,比如值为2的时候,var[2]会取到'c',但你实际要的是对应值2的索引'b'呀。

咱们一步步来修正:

错误原因拆解

  • 核心报错点:print()函数里只能放表达式,不能包含=赋值操作,这是Python的语法规则。
  • 逻辑错误:遍历sd时for i in sd拿到的是Series的数值,不是索引位置,用数值去索引var列表完全不符合需求。

修正后的代码方案

最直接的方法是用Series的items()方法(新版Pandas推荐用这个,替代旧的iteritems()),它能让你同时遍历每个元素的索引和对应的值,然后判断值是否为偶数,再按你要的格式打印:

import pandas as pd
data = [1,2,3,4]
var = ['a','b','c','d']
sd = pd.Series(data, index=var)  # 明确指定index参数,代码可读性更强

# 同时遍历索引和值
for idx, value in sd.items():
    if value % 2 == 0:
        print(f"{value} -> {idx}")

运行结果

运行上面的代码后,就能得到你期望的输出:

2 -> b
4 -> d

另外给你个更贴合Pandas风格的写法:先用布尔索引筛选出所有偶数值的Series,再遍历打印,代码更简洁:

# 先筛选偶数值的子Series
filtered_sd = sd[sd % 2 == 0]
for idx, value in filtered_sd.items():
    print(f"{value} -> {idx}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 04:33:10