在数据分析项目中使用数据集的问题

问题描述 投票:0回答:1

我正在这个数据集上做一个项目 - https://www.kaggle.com/datasets/die9origephit/fifa-world-cup-2022-complete-dataset/code。该数据集是关于 FIFA 2022 世界杯的。对于这个项目,我想将美国队与比赛获胜者阿根廷队以及比赛中其他球队的表现进行比较。但是,我遇到了问题。列 team1 和 team2 对应于主队为 team1,客队为 team2。此外,我试图将美国队与阿根廷队以及其他球队在比赛中的平均控球率进行比较。问题是占有队 1 和占有队 2 的总和并不等于 100%,因为还有另一个名为“比赛中的占有率”的列,它计算了两队都没有控球的时间。如果我想制作一个包含三个不同条形的条形图(一个条形代表美国的平均控球率,一个条形代表阿根廷的平均控球率,然后一个条形代表其他球队的平均控球率),我该如何在限制和事情的情况下做到这一点刚刚说?

我已经尝试了不同的编码方法,并尝试创建一个名为“完全拥有”的新列,这样它就不会达到 100%,但它仍然给我带来问题,并且没有显示我需要的内容

python jupyter-notebook data-analysis exploratory-data-analysis
1个回答
0
投票

为了解决您的困难,您可以通过以下方式比较美国、阿根廷和所有其他球队在 FIFA 2022 世界杯期间控球方面的表现:

  1. 计算总控球权:由于每支球队的控球权是单独显示的,并且由于“比赛中的控球权”一栏而没有达到100%,因此您必须计算每场比赛的总控球权。这涉及将两队的控球权相加,并从 100% 中扣除“比赛中的控球权”栏。

  2. 过滤数据:过滤数据集以仅包含涉及美国和阿根廷的比赛。

  3. 计算平均控球率:分别计算美国和阿根廷队的平均控球率。

  4. 计算其他球队的平均控球率:计算除美国和阿根廷之外的所有其他球队的平均控球率。

  5. 创建条形图:绘制包含三个条形的条形图:一个代表美国队,一个代表阿根廷队,一个代表其他球队的平均控球率。

以下是如何使用 pandas 和 matplotlib 在 Python 中实现这些步骤:

import pandas as pd
import matplotlib.pyplot as plt

# Load the dataset
data = pd.read_csv("fifa_world_cup_2022.csv")

# Calculate total possession for each match
data['total_possession'] = 100 - data['possession_in_contest']

# Filter data for matches involving United States and Argentina
us_matches = data[(data['team1'] == 'United States') | (data['team2'] == 'United States')]
argentina_matches = data[(data['team1'] == 'Argentina') | (data['team2'] == 'Argentina')]

# Calculate average possession for United States and Argentina
us_avg_possession = us_matches['total_possession'].mean()
argentina_avg_possession = argentina_matches['total_possession'].mean()

# Calculate average possession for rest of the teams
rest_avg_possession = data[(data['team1'] != 'United States') & (data['team2'] != 'United States') &
                           (data['team1'] != 'Argentina') & (data['team2'] != 'Argentina')]['total_possession'].mean()

# Create bar chart
teams = ['United States', 'Argentina', 'Rest of the Teams']
avg_possessions = [us_avg_possession, argentina_avg_possession, rest_avg_possession]

plt.bar(teams, avg_possessions)
plt.ylabel('Average Possession')
plt.title('Comparison of Average Possession')
plt.show()

此代码计算美国队、阿根廷队和其他球队的平均控球率,然后绘制条形图来比较它们。根据您的数据集所在位置调整文件路径。

我希望你觉得这很有用。和平

© www.soinside.com 2019 - 2024. All rights reserved.