text_html_output_1.png
import matplotlib.pyplot as plt

import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)

import seaborn as sns

players = pd.read_csv('/kaggle/input/fifa-world-cup/WorldCupPlayers.csv')
matches = pd.read_csv('/kaggle/input/fifa-world-cup/WorldCupMatches.csv')
cups = pd.read_csv('/kaggle/input/fifa-world-cup/WorldCups.csv')

matches = matches.dropna()

partidos_por_anio = matches[['Year', 'MatchID']].dropna().astype('Int64')

def cantidad_goles(texto):
    return texto.count('G') - texto.count('OG')

jugadores_goles = players[['MatchID', 'Player Name', 'goles']]

goles = pd.merge(jugadores_goles, partidos_por_anio, on='MatchID', how='inner')
goles

inicio = goles.groupby('Player Name').agg({'Year': 'min'})
inicio = inicio.to_dict()['Year']

def min_goles(texto):
    eventos = texto.split("' ")
    goles = [e.replace("'", '') for e in eventos if e and e[0] == 'G']
    return [int(g[1:]) for g in goles]

sns.kdeplot(players['Event'].fillna('').map(min_goles).sum(), fill=True, color='#BDE038')
plt.xlim((0, 120))
plt.yticks([])
plt.ylabel('Probabilidad')
plt.xlabel('Minuto')
plt.title('Distribución de los minutos en los que ocurren goles')