如何创建函数通过球队名称对DataFrame中Total_yppt值做减法运算
解决方法及学习建议
一、核心函数实现
针对你的需求,直接通过Pandas的loc方法按球队名称匹配取值是最可靠的方式(不用管中间列的数量,只要Team和Total_yppt列存在就行),以下是完整的函数代码:
import pandas as pd # 你的原始数据 data = { 'Team': ['SF','B','NE'], 'O_Yppt': [14.5, 14.4, 14.4], 'D_Yppt': [18.9, 18.1, 16.5], 'Total_yppt': [4.4, 3.7, 1.5]} NFL_YPPT = pd.DataFrame(data) # 定义差值计算函数 def calculate_yppt_diff(df, team1, team2): try: # 根据球队名称筛选行,提取Total_yppt值 yppt_team1 = df.loc[df['Team'] == team1, 'Total_yppt'].iloc[0] yppt_team2 = df.loc[df['Team'] == team2, 'Total_yppt'].iloc[0] # 返回差值 return yppt_team1 - yppt_team2 except IndexError: # 处理球队名称不存在的情况 return "输入的球队名称在数据中不存在"
调用示例:
# 计算SF和NE的Total_yppt差值 print(calculate_yppt_diff(NFL_YPPT, 'SF', 'NE')) # 输出:2.9
二、代码解释
df.loc[df['Team'] == team1, 'Total_yppt']:通过Team列的值筛选出目标球队的行,再提取Total_yppt列的数据,返回的是一个Pandas Series对象。.iloc[0]:因为每个球队名称对应唯一一行数据,所以取Series的第一个元素就是该球队的Total_yppt值。try-except块:防止输入不存在的球队名称导致报错,给新手更友好的提示。
三、新手学习资源推荐
- Python基础:《Python编程:从入门到实践》,用简单案例讲解基础语法,适合零基础快速上手。
- Pandas进阶:《利用Python进行数据分析》,是数据处理领域的经典教材,详细覆盖Pandas核心操作;也可以看Pandas官方中文文档,里面有完整的API说明和实操示例。
- 视频教程:B站上的免费Pandas入门系列(比如黑马程序员、尚硅谷的相关教程),跟着实操能更快理解代码逻辑。
内容的提问来源于stack exchange,提问作者G. Medina
相关产品推荐
相关产品推荐

