python - 如何使用条件语句创建包含计算值的新列
问题描述
语境:
- 我有一个关于足球比赛统计数据的数据框
- 此数据框缺少有关比赛结果的信息
- 因此,我正在尝试创建一个列,让我知道比赛结果是“赢”还是“输”
- 数据框包含主客队进球数
- 当主队进球多于客队进球时,我正在尝试用“赢”填充新列
- 您可以在下面的代码中看到我试图创建的新列称为“结果”
下面的工作代码应该让我了解我正在尝试做的事情,并且做错了......
for index, row in match_df.iterrows():
if match_df.home_team_goal > match_df.away_team_goal:
match_df.loc[index, "outcome"] = "Win"
else:
match_df.loc[index, "outcome"] = "Lose"
错误信息:
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
解决方案
要编辑您的尝试:
for index, row in match_df.iterrows():
if row['home_team_goal'] > row['away_team_goal']:
match_df.loc[index, "outcome"] = "Win"
else:
match_df.loc[index, "outcome"] = "Lose"
或使用以下代码获得快速结果:
df.outcome.fillna(np.where(df.home_team_goal > df.away_team_goal, "Win", "Lose") )
推荐阅读
- laravel - 你怎么能把这个标准的 php while 循环翻译成 laravel?
- android - Flutter 库大小和资产大小太大
- flutter - 在项目外部颤动异常:null。flutter工具无法访问文件或目录
- android - Kotlin 套接字属性获取器我应该检查异常吗?
- process - 从 Elm 进程接收消息
- python - 使用 python 3.9 创建的 pyenv 虚拟环境使用 python 3.8 setuptools 和 pip 在 pkg_resources 中给出了语法错误
- python - 将 .py 脚本中的变量调用到批处理中
- amazon-web-services - 无法通过 VPCE Endpoint 将私有子网中的 Lambda 连接到 S3
- django - 带有额外配置的 Django DRF 测试 API
- android - 什么可能导致 SharedPreferences 不更新?