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

Python体育数据处理:基于列最大值计算各列相对百分位数

体育数据列值的百分占比转换与新列生成

实现思路

针对数据中的每一列数值型数据,以该列最大值为100%基准,计算每行数值的百分占比,最终生成格式为「统计值/百分占比%」的新列。

代码实现(基于Pandas)

import pandas as pd

# 模拟体育数据集(可替换为你的真实数据)
data = {
    'xg': [0.25, 0.82, 1.03, 0.51, 0.33],
    'shots': [3, 8, 12, 5, 4],
    'possession': [42, 65, 58, 49, 53]
}
df = pd.DataFrame(data)

# 遍历所有数值列,生成带百分占比的新列
for col in df.select_dtypes(include=['number']).columns:
    col_max = df[col].max()
    # 生成「原数值/百分占比」格式的内容,占比保留两位小数
    df[f"{col}_with_percent"] = df[col].apply(lambda x: f"{x}/{round((x / col_max) * 100, 2)}%")

# 查看处理后的数据
print(df)

关键说明

  • select_dtypes(include=['number']):自动筛选所有数值型列,避免处理非数值列(如字符串类型的球队名)
  • 百分占比计算逻辑:(当前值 / 列最大值) * 100,用round()控制小数位数
  • 新列命名规则为「原列名_with_percent」,可根据需求自行修改
  • 若只需处理特定列,将循环对象改为指定列列表即可,例如:for col in ['xg', 'shots']:

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:35:19