python - 如何将函数(def)添加到数据集中超过一列?谁能帮帮我
问题描述
def total_score(x, y):
if x >= 35 and y >= 35:
return 'pass'
return 'fail'
st['total_score'] = st[['pretest','posttest']].apply(total_score)
TypeError: total_score() missing 1 required positional argument: 'y'
解决方案
您可以逐行应用函数:
def row_total_score(row):
if row['pretest] >= 35 and row[posttest] >= 35:
return 'pass'
return 'fail'
st['total_score'] = st.apply(row_total_score)
你也可以把你的函数写成
def row_total_score(row):
if min(row['pretest], row[posttest]) >= 35:
return 'pass'
return 'fail'
或者
def row_total_score(row):
return 'pass' if min(row['pretest], row[posttest]) >= 35 else 'fail'
推荐阅读
- java - 只有在不使用 sysout 时才延迟初始化角色集合
- sql - 识别关系的外键
- aws-cli - AWS CLI 将 pdf 隐蔽到 sdf 或 json 用于 CloudSearch 索引
- postgresql - postgresql pg_hba - 可以使用多个本地行吗?
- mediaelement.js - mediaelement.js 视频高度未正确计算
- performance - Codeacademy 是如何运作的?
- react-native - 在段中导航出错 - react-native
- cmake - 安装geant4时出现cmake错误
- python - 通过 Birth Date 列了解年龄的确切值 - Python
- java - distroless java docker镜像错误