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

Python项目评审员分配代码语法错误求助及条件抽样实现

项目评审员分配代码语法错误修复

问题背景

  • 需实现项目评审员分配功能,核心规则:项目作者不能被分配为自身portfolio内项目的评审员
  • 已有包含project和portfolio字段的数据集、人员姓名数组
  • 使用Python 3 + Jupyter Notebook,现有代码报语法错误,需本周前修复

现有错误代码

import pandas as pd

# Load  dataframe
df = pd.read_csv(dir_path, index_col = 0)
first = df["portfolio"] 
print(first)     

Update2  # Select 6 random projects for Moi which are not "XXX"
#random dataframe
import numpy as py
df2 = pd.read_csv(dir_path, skiprows=1)
np.random.seed(100)
df2 = pd.DataFrame(np.random.randint(10, size=(6,2)), columns=list('project portfolio') if ((portfolio == "XYZ") or (portfolio == "ABC") or (portfolio == "MKZ") or (portfolio == "BNZ")) 
print (df2)   

报错信息

Error message 
File "<ipython-input-29-0ee5224a45db>", line 7
    print (df2)
    ^
SyntaxError: invalid syntax

错误分析与修复代码

核心错误点

  1. numpy导入别名错误:import numpy as py应改为import numpy as np,否则后续np.random无法调用
  2. 三元表达式不完整:Python的三元表达式必须是a if cond else b的完整结构,原代码缺少else分支
  3. 无效代码片段:Update2未加注释,属于无效语句
  4. 逻辑冲突:既从CSV读取df2又用随机数生成DataFrame,两者功能重复;portfolio变量未定义,直接调用会触发NameError
  5. 业务逻辑偏离:原代码生成随机数矩阵不符合“从现有数据集选项目”的需求

修复后的代码(贴合业务需求)

import pandas as pd
import numpy as np

# 加载原始数据集
df = pd.read_csv(dir_path, index_col=0)
print("原始portfolio列数据:")
print(df["portfolio"])

# 定义目标portfolio集合(排除XXX相关项目,这里按需求指定允许的portfolio)
allowed_portfolios = ["XYZ", "ABC", "MKZ", "BNZ"]
# 过滤出符合条件的项目(排除作者自身portfolio的逻辑可后续基于人员数组扩展)
filtered_projects = df[df["portfolio"].isin(allowed_portfolios)]

# 设置随机种子保证结果可复现,随机选择6个项目
np.random.seed(100)
selected_projects = filtered_projects.sample(n=6, replace=False)

print("\n随机选中的6个符合要求的项目:")
print(selected_projects)

补充说明

  • 若要实现“排除作者自身portfolio项目”的核心规则,可基于人员姓名数组添加过滤逻辑:
    # 假设当前分配的评审员是"Moi",其对应的portfolio为"XXX"
    reviewer_portfolio = "XXX"
    filtered_projects = df[~df["portfolio"].eq(reviewer_portfolio)]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 23:53:20