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

遍历DataFrame的time_period列时,如何访问当前行的type列值?

解决方案

问题根源

你之前的代码只遍历了time_period列的单个值,没法关联到对应行的type值。而且df_course['type'] == 'Post Graduate'是拿整个type列和字符串比较,得到的是布尔值数组,不是当前行的判断结果,逻辑自然不成立。

推荐做法:先筛选再处理(Pandas最优方式)

Pandas的核心是向量化操作,尽量避免逐行循环。先直接筛选出符合条件的行,再按需处理:

# 筛选出time_period=6且type为'Post Graduate'的行
filtered_rows = df_course[(df_course['time_period'] == 6) & (df_course['type'] == 'Post Graduate')]

# 遍历筛选后的行进行操作
for index, row in filtered_rows.iterrows():
    # 可以通过row['time_period']、row['type']访问当前行的对应值
    # do something

可选做法:逐行遍历(小数据量可用)

如果一定要逐行遍历整个DataFrame,用iterrows()或itertuples()来获取每行的完整数据:

方法1:用iterrows()

for index, row in df_course.iterrows():
    if row['time_period'] == 6 and row['type'] == 'Post Graduate':
        # do something

方法2:用itertuples()(效率更高)

for row in df_course.itertuples():
    if row.time_period == 6 and row.type == 'Post Graduate':
        # do something

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:15:48