In [2]:
from pandas import DataFrame
import pandas as pd
import numpy as np
import re
import dateutil.parser 
import datetime
import math
import locale
import os
locale.setlocale(locale.LC_ALL,'en_US')


def getTransfersFile(league,season):
    filename = league + "_" + str(season)
    result = pd.read_csv("../data/transfers/" + filename + ".csv")
    result['filename'] = filename
    return result

def getPersonalFile(league,season):
    filename = league + "_" + str(season)
    result = pd.read_csv("../data/personal/" + filename + ".csv")
    result['filename'] = filename
    return result
    
def getClubFile(group,season):
    filename = group + "_" + str(season)
    result = pd.read_csv("../data/clubs/" + filename + ".csv")
    result['filename'] = filename
    result['season'] = season
    return result
    
def getLeagueTableFile(league):
    return pd.read_csv("../data/tables/" + league + ".csv")

def mvFix(mv):
    if 'Mill.' in mv:
        return float(mv.split('Mill.')[0].replace(',','.'))*1000000
    elif "Th." in mv:
        return float(mv.split('Th.')[0].replace(',','.'))*1000
    elif "-" in mv or "?"==mv:
        return np.nan
    else:
        return int('0' + ''.join([d for d in mv.replace(',','.') if d in '1234567890.']))

def feeValue(mv):
    try:
        mv = str(mv)
        r= mvFix(mv.replace('Loan fee:',''))
        return r
    except Exception as e:
        print mv, e
        return -666

def heightFix(h):
    r = float('0' + ''.join([d for d in str(h).replace(',','.') if d in '1234567890.']))
    return r if r > 0 else np.nan

def getAge(born, today):
    return today.year - born.year - ((today.month, today.day) < (born.month, born.day))

def getAgeWithSeasonAdjustment(born,today,season):
    if type(today) == int:
        return (today.year if today.year in [season,season+1] else season) - born.year - ((today.month, today.day) < (born.month, born.day))
    else:
        return season - born.year

def getAgeFloatWithSeasonAdjustment(born,today,season):
    if type(today) == int:
        return (today if today.year in [season,season+1] else datetime.datetime(season,today.month,today.day)) - born
    else:
        return datetime.datetime(season,1,1) - born
    
def parsedate(d):
    try:
        if d=="-":
            return np.nan
        return dateutil.parser.parse(str(d)) if pd.notnull(d) else np.nan
    except Exception as e:
        t=str(d).split('.')
        d='.'.join([str(int(t[0])-1)] + t[1:])
        try:
            return dateutil.parser.parse(str(d))
        except Exception as e2:
            print d
            #print e2
            return np.nan
    
def parsebirthdate(d):
    return parsedate(str(d).replace(' Happy Birthday','')) if pd.notnull(d) else np.nan

def basicparse(d):
    try:
        return dateutil.parser.parse(d)
    except Exception as e:
        #print e
        return np.nan

def seasonFix(season):
    year = int(season[-5:].split('/')[0])
    return year+2000 if year < 20 else year+1900

def camel(s):
    words = [''.join([c for c in w if c.isalnum()]) for w in s.split(' ')]
    result = [words[0].lower()]
    result.extend([w.title() for w in words[1:]])
    return ''.join(result)

def agentIdToInt(i):
    if 'nan' in str(i):
        return -1
    try:
        return int(str(i).split('.')[0])
    except Exception:
        return -18
    
#leagueList = ['GB1','ES1','L1','IT1','FR1','PO1','NL1','TR1','RU1','BE1','MLS1','UKR1','GR1','RO1','ZYP1','KR1','SER1','BOS1','BU1','DK1','SE1','NO1','LI1','SC1','ISR1','PL1','UNG1','A1','C1','MAL1','KAS1','TS1','SLO1','SL1','FI1','LUX1','AZ1','IR1']
leagueList =tier1=["GB1", "ES1", "IT1", "L1", "FR1", "TR1", "RU1", "PO1", "NL1", "BE1", "MLS1", 
            "UKR1", "GR1", "C1", "RO1", "KR1", "A1", "TS1", "DK1", "PL1", "SE1", "SER1", "NO1", "ISR1", "SC1", "BU1", "ZYP1"]\
            + ["KAS1", "BOS1", "UNG1", "WER1", "SL1", "SLO1", "GEO1", "AZ1", "ALB1", "MOL1", 
               "FI1", "MAZ1", "MNE1", "LI1", "ARM1", "EST1", "LUX1", "LET1", "MAL1", "IS1", "IR1", "WAL1","NIR1", "FARO"]

In [3]:
%matplotlib inline
import matplotlib
import matplotlib.pyplot as plt
matplotlib.style.use('ggplot')

In [ ]:
#TODO
get national team id -> nation team name mapping
defunct competitions
check actual season ranges  of competitions

In [4]:
leagueTables=pd.concat([getLeagueTableFile(league) for league in leagueList])[['league','season','rank','clubId','clubName','matches','wins','draws','losses','goalsFor','goalsAgainst','goalDiff','points','pointsRaw','error']]
leagueTables=leagueTables[(leagueTables.error.isnull())&(leagueTables.season>=1995)].drop('error',axis=1).reset_index(drop=True)
leagueTables['pointsRaw']=leagueTables['pointsRaw'].apply(int)
for column in leagueTables.columns:
    if leagueTables[column].dtype=='float64':
        leagueTables[column]=leagueTables[column].apply(int)

In [87]:
#t=leagueTables.groupby(['league','season']).describe()['rank'].unstack()[['count','min','max']]
leagueTables[leagueTables['rank'].isnull()]


Out[87]:
league season rank clubId clubName matches wins draws losses goalsFor goalsAgainst goalDiff points pointsRaw

In [75]:
t=leagueTables[leagueTables['pointsRaw']!=leagueTables['points']].groupby(['league','season']).sum()[['points','pointsRaw']]
t['pointDiff']=t['pointsRaw']-t['points']
t.sort_values('pointDiff',ascending=False)
#leagueTables[(leagueTables['season']==2015)&(leagueTables['league']=='SER1')]


Out[75]:
points pointsRaw pointDiff
league season
FI1 2013 538 592 54
UNG1 2008 79 85 6
RO1 2008 123 127 4
SLO1 2008 45 47 2
PO1 2008 32 34 2
FR1 2013 94 95 1
IR1 2008 74 75 1
NO1 1995 62 63 1
NL1 2010 41 40 -1
GR1 2007 23 22 -1
KR1 2008 26 25 -1
TR1 2008 39 38 -1
UNG1 2014 23 22 -1
NO1 2011 40 39 -1
2014 45 44 -1
SL1 2009 55 53 -2
SER1 2007 19 17 -2
IT1 1998 22 20 -2
SL1 2010 31 29 -2
KR1 2011 34 32 -2
L1 1999 41 39 -2
FR1 2012 42 40 -2
C1 2002 26 24 -2
UNG1 2011 24 22 -2
SC1 2015 31 28 -3
KAS1 2011 34 31 -3
IT1 2010 45 42 -3
NL1 2015 43 40 -3
L1 2003 39 36 -3
KR1 2014 53 50 -3
... ... ... ... ...
IT1 2012 161 151 -10
PL1 2009 44 34 -10
ZYP1 2012 42 30 -12
GR1 2015 205 193 -12
SC1 2013 38 23 -15
RO1 2015 51 35 -16
ISR1 2011 165 149 -16
UNG1 2004 119 100 -19
IR1 2007 101 81 -20
UKR1 2015 54 27 -27
2014 131 104 -27
IT1 2006 299 261 -38
A1 2006 88 47 -41
GR1 2014 99 54 -45
UKR1 2013 543 496 -47
BU1 2015 392 341 -51
C1 2011 79 17 -62
GR1 2002 25 -65 -90
PL1 2001 346 250 -96
KAS1 2013 310 198 -112
C1 1999 420 288 -132
1998 427 292 -135
2001 439 301 -138
KAS1 2012 520 342 -178
IT1 2005 315 134 -181
MAL1 2015 560 377 -183
PL1 2014 450 266 -184
2015 454 267 -187
2013 459 270 -189
SER1 2015 485 283 -202

88 rows × 3 columns


In [4]:
players0 = pd.concat([getPersonalFile(league,season) for league in leagueList for season in range(2001,2016) if os.path.isfile("../data/personal/" + league + "_" + str(season) + ".csv")],ignore_index=True)
players = players0[pd.notnull(players0['Display name'])].copy()
players = players.drop_duplicates('id') #27081
players = players.drop(['error','birthDate','filename','name'],axis=1,errors='ignore')
players['Date of birth']=players['Date of birth'].apply(parsebirthdate)
players['Height']=players['Height'].apply(heightFix)
players['Nationality 2']=players['Nationality'].str.split(' \xc2\xa0\xc2\xa0',expand=True)[1]
players['Nationality']=players['Nationality'].str.split(' \xc2\xa0\xc2\xa0',expand=True)[0]
players['Position group']=players["Position"].str.split(" - ",expand=True)[0]
players['Position']=players["Position"].str.split(" - ",expand=True)[1]
players['Intl caps']=players['Intl caps/goals'].str.split('/',expand=True)[0]
players['Intl goals']=players['Intl caps/goals'].str.split('/',expand=True)[1]
del players['Intl caps/goals']
players['In the team since']=players['In the team since'].apply(parsedate)
players['Contract until']=players['Contract until'].apply(parsedate)
players['Contract there until']=players['Contract there until'].apply(parsedate)
players['2nd club']=players['2nd club'].str.replace('\(#\d+\)','').str.strip()
players['Date of last contract extension']=players['Date of last contract extension'].apply(parsedate)
players['Main position']=players['Detailed position'].str.split('Side position:',expand=True)[0].str.slice(start=14)
players['Side position']=players['Detailed position'].str.split('Side position:',expand=True)[1]
del players['Detailed position']
players['Glove']=players['Glove'].str.split(' since ',expand=True)[0]
players['Shoe model']=players['Shoe model'].str.split(' since ',expand=True)[0]
players["Shoe size"]=players["Shoe size"].apply(lambda s:float(str(s).replace(",",".")))
players['day of death']=players['day of death'].str.slice(stop=10).apply(parsedate)
players['id'].apply(int)
c = ['id','Display name', 'Name in home country','Date of birth','Place of birth','Country of birth',
        'Age','Height','Nationality','Nationality 2','Position group','Position','Main position','Side position',
        'Foot','National team id', 'Intl caps','Intl goals','Player\'s agent','Player\'s agent id', 
        'Current club', 'Current club id','In the team since', 'Contract until','on loan from', 'on loan from club id', 'Contract there until']

players = players[(c + [x for x in players.columns if not x in c])]
players.index = players['id']


14.20.2019

In [8]:
clubs0 = pd.concat([getClubFile(group,season) for group in ['top','bottom','other','americas','world','deeper'] for season in range(1992,2016)],ignore_index=True)
clubs=clubs0.copy()
clubs = clubs[~((clubs['league']=='GB2')&(clubs['season']<2004))].copy()
clubs = clubs[~((clubs['league']=='GB3')&(clubs['season']<2004))]
clubs = clubs[~((clubs['league']=='ENSD')&(clubs['season'].isin([2002,2003])))]
clubs = clubs[~((clubs['league']=='EFD2')&(clubs['season'].isin([2001,2002,2003])))]
clubs = clubs[~((clubs['league']=='IT2')&(clubs['season']<1993))]
clubs = clubs[~((clubs['league']=='IT3A')&(clubs['season']<2006))]
clubs = clubs[~((clubs['league']=='IT3B')&(clubs['season']<2007))]
clubs = clubs[~((clubs['league']=='IT3C')&(clubs['season']<2014))]
clubs = clubs[~((clubs['league']=='ITJ1')&(clubs['season']<2009))]
clubs = clubs[~((clubs['league']=='ITJ2')&(clubs['season']<2009))]
clubs = clubs[~((clubs['league']=='ITJ3')&(clubs['season']<2008))]
clubs = clubs[~((clubs['league']=='L3')&(clubs['season']<2008))]
clubs = clubs[~((clubs['league'].isin(["RLW3","RLSW","RLN3","RLN4","RLB3"]))&(clubs['season']<2012))]
clubs = clubs[~((clubs['league']=='BE1')&(clubs['season']<2000))]
clubs = clubs[~((clubs['league']=='BE2')&(clubs['season']<2005))]
clubs = clubs[~((clubs['league']=='FR2')&(clubs['season']<1995))]
clubs = clubs[~((clubs['league']=='FR2')&(clubs['season']<2001))]
clubs = clubs[~((clubs['league']=='PO1')&(clubs['season']<2003))]
clubs = clubs[~((clubs['league']=='PO2')&(clubs['season']<2004))]
clubs = clubs[~((clubs['league']=='RU1')&(clubs['season']<2004))]
clubs = clubs[~((clubs['league']=='RU2')&(clubs['season']<2006))]
clubs = clubs[~((clubs['league']=='MLS1')&(clubs['season']<1995))]
clubs = clubs[~((clubs['league']=='NAFC')&(clubs['season']<2012))]
clubs = clubs[~((clubs['league']=='BRA1')&(clubs['season']<2004))]
clubs = clubs[~((clubs['league']=='BRA2')&(clubs['season']<2007))]
clubs = clubs[~((clubs['league']=='TR2')&(clubs['season']<2001))]
clubs = clubs[~((clubs['league']=='ES3A')&(clubs['season']<1998))]
clubs = clubs[~((clubs['league']=='ES3B')&(clubs['season']<2000))]
clubs = clubs[~((clubs['league']=='ES3C')&(clubs['season']<2006))]
clubs = clubs[~((clubs['league']=='ES3D')&(clubs['season']<2011))]
clubs = clubs[~((clubs['league']=='510')&(clubs['season']<2010))]
clubs = clubs[~((clubs['league']=='511')&(clubs['season']<2010))]
clubs = clubs[~((clubs['league']=='TR3A')&(clubs['season']<2010))]
clubs = clubs[~((clubs['league']=='TR3B')&(clubs['season']<2010))]
clubs = clubs[~((clubs['league']=='TR4A')&(clubs['season']<2012))]
clubs = clubs[~((clubs['league']=='TR4B')&(clubs['season']<2012))]
clubs = clubs[~((clubs['league']=='TR4C')&(clubs['season']<2013))]
clubs = clubs[~((clubs['league']=='GB4')&(clubs['season']<2004))]
clubs = clubs[~((clubs['league']=='CNAT')&(clubs['season']<2010))]
clubs = clubs[~((clubs['league']=='EFD2')&(clubs['season']<2001))]
clubs = clubs[~((clubs['league']=='EFD2')&(clubs['season']>2003))]
clubs = clubs[~((clubs['league']=='ENSD')&~(clubs['season'].isin([2002,2003])))]

clubs = clubs[~((clubs['clubId']==2457)&(clubs['season']==2006)&(clubs['league']=='PO2'))]
clubs = clubs[~((clubs['clubId'].isin([11126,11127]))&(clubs['season']==2011)&(clubs['league']=='RU1'))]
#clubs

In [6]:
clubs[(clubs.league=='GB1')&(clubs.season==2014)]


Out[6]:
clubId league name filename season
9211 631 GB1 Chelsea FC top_2014 2014
9212 985 GB1 Manchester United top_2014 2014
9213 281 GB1 Manchester City top_2014 2014
9214 11 GB1 Arsenal FC top_2014 2014
9215 148 GB1 Tottenham Hotspur top_2014 2014
9216 31 GB1 Liverpool FC top_2014 2014
9217 29 GB1 Everton FC top_2014 2014
9218 180 GB1 Southampton FC top_2014 2014
9219 762 GB1 Newcastle United top_2014 2014
9220 512 GB1 Stoke City top_2014 2014
9221 405 GB1 Aston Villa top_2014 2014
9222 379 GB1 West Ham United top_2014 2014
9223 3008 GB1 Hull City top_2014 2014
9224 289 GB1 Sunderland AFC top_2014 2014
9225 1039 GB1 Queens Park Rangers top_2014 2014
9226 2288 GB1 Swansea City top_2014 2014
9227 984 GB1 West Bromwich Albion top_2014 2014
9228 873 GB1 Crystal Palace top_2014 2014
9229 1003 GB1 Leicester City top_2014 2014
9230 1132 GB1 Burnley FC top_2014 2014

In [9]:
transfers0 = pd.concat([getTransfersFile(league,season) for league in leagueList for season in range(2001,2016) if os.path.isfile("../data/transfers/" + league + "_" + str(season) + ".csv")],ignore_index=True)
transfers = transfers0[pd.notnull(transfers0['playerName'])].copy()
transfers['date'] = transfers['date'].apply(basicparse)
transfers['season']=transfers['season'].apply(seasonFix)
transfers=transfers.merge(clubs.rename(columns={'league': 'fromLeague','clubId':'fromTeamId'})[['fromTeamId','season','fromLeague']],how='left',on=['season','fromTeamId']) \
                .merge(clubs.rename(columns={'league': 'toLeague','clubId':'toTeamId'})[['toTeamId','season','toLeague']],how='left',on=['season','toTeamId'])
transfers=transfers[['id','playerName','date','season','fromCountry','fromLeague','fromTeamId','fromTeamName','toCountry','toLeague','toTeamId','toTeamName','mv','fee']]
transfers=transfers.merge(players,how='left',on='id')
transfers['mv'] = transfers['mv'].apply(mvFix)
transfers['feeValue'] = transfers['fee'].apply(feeValue)
transfers=transfers.drop_duplicates()
#transfers=transfers[(transfers['fee']!='End of loan')]
transfers['isLoan']=(transfers['fee'].str.startswith('Loan')).fillna(False)
#outofrangeIds = transfers[(transfers['season']<1992)]['id'].drop_duplicates().tolist()
#transfers=transfers[~transfers['id'].isin(outofrangeIds)]
transfers=transfers[transfers['season']<2016]
transfers['toCountry']=np.where(transfers['fromTeamId'].isin([75,123,515,2113,2077]),transfers['fromCountry'],transfers['toCountry'])
transfers['toCountry']=np.where(transfers['toTeamName'].str.startswith('Monaco'),'France',transfers['toCountry'])
transfers['fromCountry']=np.where(transfers['fromTeamId'].isin([75,123,515,2113,2077]),np.nan,transfers['fromCountry'])
transfers['fromCountry']=np.where(transfers['fromTeamName'].str.startswith('Monaco'),'France',transfers['fromCountry'])
transfers['toCountry']=np.where(transfers['fromTeamId'].isin([464,12604]),transfers['fromCountry'],transfers['toCountry'])
transfers['fromLeague']=np.where(pd.isnull(transfers['fromLeague']),'Other '+transfers['fromCountry'],transfers['fromLeague'])
transfers['toLeague']=np.where(pd.isnull(transfers['toLeague']),'Other '+transfers['toCountry'],transfers['toLeague'])
transfers['fromCountry']=np.where(transfers['fromLeague']=='MLS1','United States',transfers['fromCountry'])
transfers['toCountry']=np.where(transfers['toLeague']=='MLS1','United States',transfers['toCountry'])
transfers['fromCountry']=np.where(transfers['fromLeague']=='IR1','Ireland',transfers['fromCountry'])
transfers['toCountry']=np.where(transfers['toLeague']=='IR1','Ireland',transfers['toCountry'])
transfers['fromCountry']=np.where(transfers['fromCountry'].str.startswith('Liechten').fillna(False),'Switzerland',transfers['fromCountry'])
transfers['toCountry']=np.where(transfers['toCountry'].str.startswith('Liechten').fillna(False),'Switzerland',transfers['toCountry'])
transfers['age']=transfers[['Date of birth','date','season']].apply(lambda x:getAgeWithSeasonAdjustment(*x),axis=1)
transfers['ageFloat']=transfers[['Date of birth','date','season']].apply(lambda x:getAgeFloatWithSeasonAdjustment(*x),axis=1)/ np.timedelta64(1, 'Y')
transfers['period']=pd.cut(transfers['season'],[1995,2000,2005,2010,2015])
transfers=transfers.rename(columns={x:camel(x) for x in transfers.columns if ' ' in x})
transfers.toTeamId=transfers.toTeamId.apply(int)
transfers.fromTeamId=transfers.fromTeamId.apply(int)
transfers.toTeamName=transfers.toTeamName.str.strip()
transfers.fromTeamName=transfers.fromTeamName.str.strip()
transfers.intlCaps=transfers.intlCaps.fillna(0).apply(int)
transfers.intlGoals=transfers.intlGoals.fillna(0).apply(int)
transfers.currentClubId=transfers.currentClubId.apply(int)
transfers.nationalTeamId=transfers.nationalTeamId.fillna(-1).apply(int)
transfers.playersAgentId=transfers.playersAgentId.apply(agentIdToInt)
transfers=transfers.iloc[::-1]
loans=transfers[transfers['isLoan']]
nonloans=transfers[~transfers['isLoan']]

In [51]:
def addMvDelta(s):
    s['mvDelta']=s.mv-s.mv.shift(1).fillna(method='pad')
    return s

transfers=transfers.groupby('id').apply(addMvDelta)

In [47]:
dateutil.parser.parse('Jan 1, 2009 ')


Out[47]:
datetime.datetime(2009, 1, 1, 0, 0)

In [7]:
transfers.to_csv('../data/merged/transfers.csv',encoding='utf-8',index=False)
loans.to_csv('../data/merged/loans.csv',encoding='utf-8',index=False)
nonloans.to_csv('../data/merged/nonloans.csv',encoding='utf-8',index=False)
players.to_csv('../data/merged/players.csv',encoding='utf-8',index=False)
leagueTables.to_csv('../data/merged/leagueTables.csv',encoding='utf-8',index=False)


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-7-e78289929841> in <module>()
----> 1 transfers.to_csv('../data/merged/transfers.csv',encoding='utf-8',index=False)
      2 loans.to_csv('../data/merged/loans.csv',encoding='utf-8',index=False)
      3 nonloans.to_csv('../data/merged/nonloans.csv',encoding='utf-8',index=False)
      4 players.to_csv('../data/merged/players.csv',encoding='utf-8',index=False)
      5 leagueTables.to_csv('../data/merged/leagueTables.csv',encoding='utf-8',index=False)

NameError: name 'transfers' is not defined

In [5]:
leagueTables.to_csv('../data/merged/leagueTables.csv',encoding='utf-8',index=False)

In [313]:
{c:str(transfers[c].dtype) for c in transfers.columns if c.endswith('Id')}


Out[313]:
{'2ndClubId': 'float64',
 'currentClubId': 'int64',
 'fromTeamId': 'int64',
 'nationalTeamId': 'int64',
 'onLoanFromClubId': 'float64',
 'playersAgentId': 'int64',
 'toTeamId': 'int64'}

In [6]:
players['Contract until']


Out[6]:
id
4.0                         NaN
104.0                       NaN
192.0                       NaN
205.0       2017-12-31 00:00:00
301.0                       NaN
324.0                       NaN
669.0                       NaN
916.0                       NaN
919.0                       NaN
1397.0                      NaN
1419.0                      NaN
1440.0                      NaN
1450.0                      NaN
1529.0                      NaN
1573.0                      NaN
2888.0                      NaN
2998.0      2018-06-30 00:00:00
3001.0                      NaN
3087.0                      NaN
3088.0                      NaN
3089.0                      NaN
3092.0                      NaN
3093.0                      NaN
3095.0                      NaN
3098.0                      NaN
3099.0                      NaN
3102.0                      NaN
3103.0                      NaN
3105.0                      NaN
3109.0      2016-12-31 00:00:00
                   ...         
365180.0    2016-12-31 00:00:00
365193.0    2016-12-31 00:00:00
367394.0    2016-12-31 00:00:00
369555.0    2016-12-31 00:00:00
377170.0    2016-12-31 00:00:00
377171.0    2016-12-31 00:00:00
379330.0    2016-12-31 00:00:00
379347.0    2017-06-30 00:00:00
379616.0    2016-06-30 00:00:00
385546.0    2016-12-31 00:00:00
385665.0                    NaN
385666.0    2016-12-31 00:00:00
387835.0    2016-06-30 00:00:00
389951.0    2016-12-31 00:00:00
389975.0    2016-12-31 00:00:00
391189.0    2016-12-31 00:00:00
392591.0    2016-12-31 00:00:00
392592.0    2016-06-30 00:00:00
399778.0    2016-12-31 00:00:00
426344.0    2016-12-31 00:00:00
426345.0    2016-12-31 00:00:00
426347.0    2016-12-31 00:00:00
426352.0    2016-12-31 00:00:00
426355.0    2016-12-31 00:00:00
427604.0    2016-12-31 00:00:00
427667.0    2016-12-31 00:00:00
431562.0    2016-12-30 00:00:00
433323.0    2016-12-31 00:00:00
438746.0    2017-12-31 00:00:00
438985.0    2017-12-31 00:00:00
Name: Contract until, dtype: object

In [309]:
def agentIdToInt(i):
    if 'nan' in str(i):
        return -1
    try:
        return int(str(i).split('.')[0])
    except Exception:
        return -18
    
transfers[['id','playersAgentId','playersAgent']]

x=transfers[['id','playersAgentId','playersAgent']].join(transfers['playersAgentId'].apply(agentIdToInt),rsuffix='_new')
x[x.playersAgentId_new<0].drop_duplicates('playersAgentId')


Out[309]:
id playersAgentId playersAgent playersAgentId_new
0 4096 NaN NaN -1
52590 316264 Agent is known players under 18: Agent is known players under 18: -18

In [268]:
players[players['id']==17340 ]['Player\'s agent id'].apply(str).apply(int)


---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-268-5f3521bc65a1> in <module>()
----> 1 players[players['id']==17340 ]['Player\'s agent id'].apply(str).apply(int)

/Users/sunkevin/anaconda/lib/python2.7/site-packages/pandas/core/series.pyc in apply(self, func, convert_dtype, args, **kwds)
   2218         else:
   2219             values = self.asobject
-> 2220             mapped = lib.map_infer(values, f, convert=convert_dtype)
   2221 
   2222         if len(mapped) and isinstance(mapped[0], Series):

pandas/src/inference.pyx in pandas.lib.map_infer (pandas/lib.c:62658)()

ValueError: invalid literal for int() with base 10: '2400.0'

In [255]:
a='asdasd'
'12a1212'.isdigit()


Out[255]:
False

In [162]:
fromIds=transfers.sort_values('season',ascending=False).drop_duplicates('fromTeamId')[['fromTeamId','fromTeamName']]
toIds=transfers.sort_values('season',ascending=False).drop_duplicates('fromTeamId')[['toTeamId','toTeamName']]


Out[162]:
fromTeamId fromTeamName
179664 12511 Kocaeli Birlik

In [176]:
teamIdMap = pd.concat([transfers[['toTeamId','toTeamName','season']].rename(columns={'toTeamId':'teamId','toTeamName':'teamName'}),
    transfers[['fromTeamId','fromTeamName','season']].rename(columns={'fromTeamId':'teamId','fromTeamName':'teamName'})],ignore_index=True) \
    .sort_values('season',ascending=False).drop_duplicates('teamId').set_index('teamId')['teamName'].to_dict()

In [332]:
x=transfers.groupby('playersAgentId')['playersAgent'].nunique().sort_values()
transfers[transfers['playersAgentId'].isin([y for y in x[x>1].index])][['playersAgentId','playersAgent']].sort_values('playersAgent',ascending=False).drop_duplicates('playersAgentId')


Out[332]:
playersAgentId playersAgent
250423 847 Proeleven Gestão Desportiva Lda
90670 348 PDP s.r.l. Pasqualin D’Amico Partners
131267 1881 Meïssa N'diaye
75684 302 Kögl & Partner GmbH

In [338]:
agentIdMap = transfers[['playersAgentId','playersAgent']].sort_values('playersAgent',ascending=False).drop_duplicates('playersAgentId').set_index('playersAgentId')['playersAgent'].to_dict()

In [87]:
transfers[transfers['Date of birth'].isnull()].count() #.apply(lambda x: x.day).value_counts().sort_index().plot.bar()


Out[87]:
id                                 9
playerName                         9
date                               9
season                             9
fromCountry                        9
fromLeague                         9
fromTeamId                         9
fromTeamName                       9
toCountry                          7
toLeague                           7
toTeamId                           9
toTeamName                         9
mv                                 0
fee                                9
Display name                       9
Name in home country               0
Date of birth                      0
Place of birth                     0
Country of birth                   0
Age                                0
Height                             4
Nationality                        9
Nationality 2                      1
Position group                     9
Position                           0
Main position                      1
Side position                      0
Foot                               0
National team id                   1
Intl caps                          1
Intl goals                         1
Player's agent                     0
Player's agent id                  0
Current club                       9
Current club id                    9
In the team since                  5
Contract until                     0
on loan from                       0
on loan from club id               0
Contract there until               0
2nd club                           0
2nd club id                        0
Complete name                      4
Contract option                    0
Date of last contract extension    0
Glove                              0
Outfitter                          0
Shoe model                         0
Shoe size                          0
day of death                       0
facebook                           0
instagram                          0
twitter                            0
website                            0
feeValue                           2
isLoan                             9
AgeFloat                           0
period                             9
dtype: int64

In [93]:
transfers['Place of birth'].str.strip().drop_duplicates().sort_values().count()


Out[93]:
7511

In [102]:



---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-102-df413cd85162> in <module>()
----> 1 range('a','z')

TypeError: range() integer end argument expected, got str.

In [111]:
{x:camel(x) for x in transfers.columns if ' ' in x}


Out[111]:
id playerName date season fromCountry fromLeague fromTeamId fromTeamName toCountry toLeague ... shoeSize dayOfDeath facebook instagram twitter website feeValue isLoan AgeFloat period
0 4096 Jacob Burns 2014-07-01 2014 Australia AUS1 970.0 Perth Glory NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 36.195131 (2010, 2015]
1 4096 Jacob Burns 2009-07-01 2009 Romania RO1 10442.0 Unirea Urziceni Australia AUS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 31.195712 (2005, 2010]
2 4096 Jacob Burns 2008-02-01 2007 Poland PL1 422.0 Wisla Kraków Romania RO1 ... NaN NaN NaN NaN NaN NaN 0.0 False 29.782952 (2005, 2010]
3 4096 Jacob Burns 2006-02-01 2005 England GB3 349.0 Barnsley FC Poland PL1 ... NaN NaN NaN NaN NaN NaN 100000.0 False 27.784280 (2000, 2005]
4 4096 Jacob Burns 2004-01-01 2003 NaN NaN 515.0 Unattached England Other England ... NaN NaN NaN NaN NaN NaN NaN False 25.697995 (2000, 2005]
5 4096 Jacob Burns 2003-07-01 2003 England GB1 399.0 Leeds NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 25.194220 (2000, 2005]
6 4096 Jacob Burns 2000-07-01 2000 Australia Other Australia 2500.0 Parra. Power England GB1 ... NaN NaN NaN NaN NaN NaN 375000.0 False 22.196212 (1995, 2000]
7 4096 Jacob Burns 1999-07-01 1999 Australia Other Australia 6045.0 Sydney United Australia Other Australia ... NaN NaN NaN NaN NaN NaN NaN False 21.194138 (1995, 2000]
8 4097 Kevin Lisbie 2016-01-11 2015 England GB4 2804.0 Barnet NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 37.235535 (2010, 2015]
9 4097 Kevin Lisbie 2015-07-01 2015 England GB4 1150.0 Leyton Orient England GB4 ... NaN NaN NaN NaN NaN NaN 0.0 False 36.704381 (2010, 2015]
11 4097 Kevin Lisbie 2015-03-17 2014 England GB3 1150.0 Leyton Orient England GB4 ... NaN NaN NaN NaN NaN NaN 0.0 True 36.414163 (2010, 2015]
12 4097 Kevin Lisbie 2011-09-01 2011 England GB2 677.0 Ipswich England GB3 ... NaN NaN NaN NaN NaN NaN NaN False 32.874049 (2010, 2015]
14 4097 Kevin Lisbie 2010-08-01 2010 England GB2 677.0 Ipswich England GB2 ... NaN NaN NaN NaN NaN NaN 0.0 True 31.789838 (2005, 2010]
16 4097 Kevin Lisbie 2009-08-01 2009 England GB2 677.0 Ipswich England GB3 ... NaN NaN NaN NaN NaN NaN 0.0 True 30.790502 (2005, 2010]
17 4097 Kevin Lisbie 2008-07-01 2008 England GB3 1060.0 Colchester Utd. England GB2 ... NaN NaN NaN NaN NaN NaN 750000.0 False 29.706291 (2005, 2010]
18 4097 Kevin Lisbie 2007-07-01 2007 England GB2 358.0 Charlton England GB2 ... NaN NaN NaN NaN NaN NaN 0.0 False 28.704217 (2005, 2010]
20 4097 Kevin Lisbie 2006-02-01 2005 England GB1 358.0 Charlton England GB2 ... NaN NaN NaN NaN NaN NaN 0.0 True 27.294195 (2000, 2005]
22 4097 Kevin Lisbie 2005-09-01 2005 England GB1 358.0 Charlton England GB2 ... NaN NaN NaN NaN NaN NaN 0.0 True 26.875295 (2000, 2005]
24 4097 Kevin Lisbie 2000-12-01 2000 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 22.125027 (1995, 2000]
26 4097 Kevin Lisbie 1999-11-01 1999 England Other England 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 21.040815 (1995, 2000]
28 4097 Kevin Lisbie 1999-03-01 1998 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 20.370028 (1995, 2000]
29 4097 Kevin Lisbie 1995-07-01 1995 England GBJG 6932.0 Charlton U18 England Other England ... NaN NaN NaN NaN NaN NaN NaN False 16.703971 NaN
30 4099 Ben Roberts 2010-12-01 2010 England GB3 972.0 Yeovil Town NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 35.444944 (2005, 2010]
31 4099 Ben Roberts 2009-07-01 2009 NaN NaN 123.0 End of career England GB3 ... NaN NaN NaN NaN NaN NaN NaN False 34.026708 (2005, 2010]
32 4099 Ben Roberts 2008-04-01 2007 Ireland IR1 920.0 Derry City NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 32.778223 (2005, 2010]
33 4099 Ben Roberts 2005-07-01 2005 England GB2 1237.0 Brighton Northern Ireland IR1 ... NaN NaN NaN NaN NaN NaN 0.0 False 30.026626 (2000, 2005]
34 4099 Ben Roberts 2003-07-01 2003 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 False 28.025216 (2000, 2005]
36 4099 Ben Roberts 2003-01-01 2002 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 27.529655 (2000, 2005]
38 4099 Ben Roberts 2002-08-01 2002 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 27.110755 (2000, 2005]
40 4099 Ben Roberts 2002-01-01 2001 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 26.530319 (2000, 2005]
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
251809 417384 Hadji Barry 2016-01-14 2015 United States Other United States 31632.0 University of Central Florida United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 23.099721 (2010, 2015]
251810 417386 Cole Seiler 2016-01-14 2015 United States Other United States 9746.0 GU Hoyas United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.938849 (2010, 2015]
251811 417387 Ryan Herman 2016-01-14 2015 United States Other United States 9782.0 WA Huskies United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.574043 (2010, 2015]
251812 417388 Justin Bilyeu 2016-01-14 2015 United States Other United States 43307.0 SIUE Cougars United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.944325 (2010, 2015]
251813 417389 Rodrigo Saravia 2016-01-14 2015 United States Other United States 38984.0 Fl Gulf Coast United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.891640 (2010, 2015]
251814 417390 Ben Polk 2016-01-14 2015 United States Other United States 36097.0 Syracuse Athl. United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 23.318754 (2010, 2015]
251815 417393 Alex Morrell 2016-01-14 2015 United States Other United States 30846.0 University of North Florida United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.678748 (2010, 2015]
251816 417616 Tony Alfaro 2016-01-14 2015 United States Other United States 46852.0 SCUDH United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.582257 (2010, 2015]
251817 417618 Michael Gamble 2016-01-14 2015 United States Other United States 9783.0 Demon Deacons United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.023724 (2010, 2015]
251819 419247 Christian Martínez 2016-05-17 2015 Panama Other Panama 18952.0 Chorrillo FC United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 True 19.274865 (2010, 2015]
251820 425006 Colin Bonner 2016-01-19 2015 United States Other United States 39623.0 UNC Wilmington United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.719816 (2010, 2015]
251821 425266 Matt Pacifici 2016-03-04 2015 United States Other United States 38369.0 Wildcats United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.508334 (2010, 2015]
251822 425308 Chris Froschauer 2016-01-19 2015 United States Other United States 9753.0 Ohio State University United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.925159 (2010, 2015]
251823 427612 Femi Hollinger-Janzen 2016-01-19 2015 United States Other United States 9747.0 Indiana Hoosier United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.097647 (2010, 2015]
251824 435608 Agustín Jara 2016-05-16 2015 NaN NaN 515.0 Unattached United States MLS1 ... NaN NaN NaN NaN NaN NaN NaN False 23.956686 (2010, 2015]
251825 435608 Agustín Jara 2016-01-01 2015 Argentina Other Argentina 15944.0 Colon II NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 23.584331 (2010, 2015]
251826 279681 Emmanuel Boateng 2016-01-14 2015 Sweden SE1 699.0 Helsingborgs IF United States MLS1 ... NaN NaN NaN NaN NaN NaN NaN False 21.990869 (2010, 2015]
251827 279681 Emmanuel Boateng 2013-07-19 2013 United States Other United States 9767.0 UCSB Gauchos Sweden SE1 ... NaN NaN NaN NaN NaN NaN NaN False 19.502112 (2010, 2015]
251828 279681 Emmanuel Boateng 2009-07-01 2009 Ghana Other Ghana 40902.0 Right to Dream United States Other United States ... NaN NaN NaN NaN NaN NaN NaN False 15.452747 (2005, 2010]
251997 201336 Andrea Mancini 2016-03-27 2015 NaN NaN 515.0 Unattached United States MLS1 ... NaN NaN NaN NaN NaN NaN NaN False 23.619924 (2010, 2015]
251998 201336 Andrea Mancini 2015-07-01 2015 Hungary UNG1 649.0 Szombathely NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 22.880689 (2010, 2015]
251999 201336 Andrea Mancini 2015-01-20 2014 NaN NaN 515.0 Unattached Hungary UNG1 ... NaN NaN NaN NaN NaN NaN NaN False 22.437148 (2010, 2015]
252000 201336 Andrea Mancini 2014-10-27 2014 Hungary UNG1 709.0 Budapest Honvéd NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 22.204426 (2010, 2015]
252001 201336 Andrea Mancini 2013-07-01 2013 Spain Other Spain 7078.0 Valladolid B Hungary UNG1 ... NaN NaN NaN NaN NaN NaN 0.0 False 20.882017 (2010, 2015]
252002 201336 Andrea Mancini 2012-07-01 2012 England GB21 9265.0 Man City U21 Spain Other Spain ... NaN NaN NaN NaN NaN NaN 0.0 False 19.882681 (2010, 2015]
252004 201336 Andrea Mancini 2012-01-01 2011 England GB21 9265.0 Man City U21 Italy Other Italy ... NaN NaN NaN NaN NaN NaN 0.0 True 19.384382 (2010, 2015]
252006 201336 Andrea Mancini 2011-11-01 2011 England GB21 9265.0 Man City U21 England GB3 ... NaN NaN NaN NaN NaN NaN 0.0 True 19.217369 (2010, 2015]
252007 201336 Andrea Mancini 2010-11-01 2010 Italy ITJ1 14848.0 Bologna England GB21 ... NaN NaN NaN NaN NaN NaN 0.0 False 18.218033 (2005, 2010]
252008 201336 Andrea Mancini 2009-07-01 2009 Italy Other Italy 24432.0 Inter Youth Italy ITJ2 ... NaN NaN NaN NaN NaN NaN 0.0 False 16.881935 (2005, 2010]
252010 201336 Andrea Mancini 2008-09-01 2008 Italy Other Italy 24432.0 Inter Youth Italy Other Italy ... NaN NaN NaN NaN NaN NaN 0.0 True 16.052349 (2005, 2010]

174779 rows × 58 columns


In [125]:
transfers #['fromTeamId']


Out[125]:
id playername date season fromcountry fromleague fromteamid fromteamname tocountry toleague ... shoeSize dayOfDeath facebook instagram twitter website feevalue isloan agefloat period
0 4096 Jacob Burns 2014-07-01 2014 Australia AUS1 970.0 Perth Glory NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 36.195131 (2010, 2015]
1 4096 Jacob Burns 2009-07-01 2009 Romania RO1 10442.0 Unirea Urziceni Australia AUS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 31.195712 (2005, 2010]
2 4096 Jacob Burns 2008-02-01 2007 Poland PL1 422.0 Wisla Kraków Romania RO1 ... NaN NaN NaN NaN NaN NaN 0.0 False 29.782952 (2005, 2010]
3 4096 Jacob Burns 2006-02-01 2005 England GB3 349.0 Barnsley FC Poland PL1 ... NaN NaN NaN NaN NaN NaN 100000.0 False 27.784280 (2000, 2005]
4 4096 Jacob Burns 2004-01-01 2003 NaN NaN 515.0 Unattached England Other England ... NaN NaN NaN NaN NaN NaN NaN False 25.697995 (2000, 2005]
5 4096 Jacob Burns 2003-07-01 2003 England GB1 399.0 Leeds NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 25.194220 (2000, 2005]
6 4096 Jacob Burns 2000-07-01 2000 Australia Other Australia 2500.0 Parra. Power England GB1 ... NaN NaN NaN NaN NaN NaN 375000.0 False 22.196212 (1995, 2000]
7 4096 Jacob Burns 1999-07-01 1999 Australia Other Australia 6045.0 Sydney United Australia Other Australia ... NaN NaN NaN NaN NaN NaN NaN False 21.194138 (1995, 2000]
8 4097 Kevin Lisbie 2016-01-11 2015 England GB4 2804.0 Barnet NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 37.235535 (2010, 2015]
9 4097 Kevin Lisbie 2015-07-01 2015 England GB4 1150.0 Leyton Orient England GB4 ... NaN NaN NaN NaN NaN NaN 0.0 False 36.704381 (2010, 2015]
11 4097 Kevin Lisbie 2015-03-17 2014 England GB3 1150.0 Leyton Orient England GB4 ... NaN NaN NaN NaN NaN NaN 0.0 True 36.414163 (2010, 2015]
12 4097 Kevin Lisbie 2011-09-01 2011 England GB2 677.0 Ipswich England GB3 ... NaN NaN NaN NaN NaN NaN NaN False 32.874049 (2010, 2015]
14 4097 Kevin Lisbie 2010-08-01 2010 England GB2 677.0 Ipswich England GB2 ... NaN NaN NaN NaN NaN NaN 0.0 True 31.789838 (2005, 2010]
16 4097 Kevin Lisbie 2009-08-01 2009 England GB2 677.0 Ipswich England GB3 ... NaN NaN NaN NaN NaN NaN 0.0 True 30.790502 (2005, 2010]
17 4097 Kevin Lisbie 2008-07-01 2008 England GB3 1060.0 Colchester Utd. England GB2 ... NaN NaN NaN NaN NaN NaN 750000.0 False 29.706291 (2005, 2010]
18 4097 Kevin Lisbie 2007-07-01 2007 England GB2 358.0 Charlton England GB2 ... NaN NaN NaN NaN NaN NaN 0.0 False 28.704217 (2005, 2010]
20 4097 Kevin Lisbie 2006-02-01 2005 England GB1 358.0 Charlton England GB2 ... NaN NaN NaN NaN NaN NaN 0.0 True 27.294195 (2000, 2005]
22 4097 Kevin Lisbie 2005-09-01 2005 England GB1 358.0 Charlton England GB2 ... NaN NaN NaN NaN NaN NaN 0.0 True 26.875295 (2000, 2005]
24 4097 Kevin Lisbie 2000-12-01 2000 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 22.125027 (1995, 2000]
26 4097 Kevin Lisbie 1999-11-01 1999 England Other England 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 21.040815 (1995, 2000]
28 4097 Kevin Lisbie 1999-03-01 1998 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 20.370028 (1995, 2000]
29 4097 Kevin Lisbie 1995-07-01 1995 England GBJG 6932.0 Charlton U18 England Other England ... NaN NaN NaN NaN NaN NaN NaN False 16.703971 NaN
30 4099 Ben Roberts 2010-12-01 2010 England GB3 972.0 Yeovil Town NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 35.444944 (2005, 2010]
31 4099 Ben Roberts 2009-07-01 2009 NaN NaN 123.0 End of career England GB3 ... NaN NaN NaN NaN NaN NaN NaN False 34.026708 (2005, 2010]
32 4099 Ben Roberts 2008-04-01 2007 Ireland IR1 920.0 Derry City NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 32.778223 (2005, 2010]
33 4099 Ben Roberts 2005-07-01 2005 England GB2 1237.0 Brighton Northern Ireland IR1 ... NaN NaN NaN NaN NaN NaN 0.0 False 30.026626 (2000, 2005]
34 4099 Ben Roberts 2003-07-01 2003 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 False 28.025216 (2000, 2005]
36 4099 Ben Roberts 2003-01-01 2002 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 27.529655 (2000, 2005]
38 4099 Ben Roberts 2002-08-01 2002 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 27.110755 (2000, 2005]
40 4099 Ben Roberts 2002-01-01 2001 England GB1 358.0 Charlton England Other England ... NaN NaN NaN NaN NaN NaN 0.0 True 26.530319 (2000, 2005]
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
251809 417384 Hadji Barry 2016-01-14 2015 United States Other United States 31632.0 University of Central Florida United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 23.099721 (2010, 2015]
251810 417386 Cole Seiler 2016-01-14 2015 United States Other United States 9746.0 GU Hoyas United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.938849 (2010, 2015]
251811 417387 Ryan Herman 2016-01-14 2015 United States Other United States 9782.0 WA Huskies United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.574043 (2010, 2015]
251812 417388 Justin Bilyeu 2016-01-14 2015 United States Other United States 43307.0 SIUE Cougars United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.944325 (2010, 2015]
251813 417389 Rodrigo Saravia 2016-01-14 2015 United States Other United States 38984.0 Fl Gulf Coast United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.891640 (2010, 2015]
251814 417390 Ben Polk 2016-01-14 2015 United States Other United States 36097.0 Syracuse Athl. United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 23.318754 (2010, 2015]
251815 417393 Alex Morrell 2016-01-14 2015 United States Other United States 30846.0 University of North Florida United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.678748 (2010, 2015]
251816 417616 Tony Alfaro 2016-01-14 2015 United States Other United States 46852.0 SCUDH United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.582257 (2010, 2015]
251817 417618 Michael Gamble 2016-01-14 2015 United States Other United States 9783.0 Demon Deacons United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.023724 (2010, 2015]
251819 419247 Christian Martínez 2016-05-17 2015 Panama Other Panama 18952.0 Chorrillo FC United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 True 19.274865 (2010, 2015]
251820 425006 Colin Bonner 2016-01-19 2015 United States Other United States 39623.0 UNC Wilmington United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.719816 (2010, 2015]
251821 425266 Matt Pacifici 2016-03-04 2015 United States Other United States 38369.0 Wildcats United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.508334 (2010, 2015]
251822 425308 Chris Froschauer 2016-01-19 2015 United States Other United States 9753.0 Ohio State University United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 21.925159 (2010, 2015]
251823 427612 Femi Hollinger-Janzen 2016-01-19 2015 United States Other United States 9747.0 Indiana Hoosier United States MLS1 ... NaN NaN NaN NaN NaN NaN 0.0 False 22.097647 (2010, 2015]
251824 435608 Agustín Jara 2016-05-16 2015 NaN NaN 515.0 Unattached United States MLS1 ... NaN NaN NaN NaN NaN NaN NaN False 23.956686 (2010, 2015]
251825 435608 Agustín Jara 2016-01-01 2015 Argentina Other Argentina 15944.0 Colon II NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 23.584331 (2010, 2015]
251826 279681 Emmanuel Boateng 2016-01-14 2015 Sweden SE1 699.0 Helsingborgs IF United States MLS1 ... NaN NaN NaN NaN NaN NaN NaN False 21.990869 (2010, 2015]
251827 279681 Emmanuel Boateng 2013-07-19 2013 United States Other United States 9767.0 UCSB Gauchos Sweden SE1 ... NaN NaN NaN NaN NaN NaN NaN False 19.502112 (2010, 2015]
251828 279681 Emmanuel Boateng 2009-07-01 2009 Ghana Other Ghana 40902.0 Right to Dream United States Other United States ... NaN NaN NaN NaN NaN NaN NaN False 15.452747 (2005, 2010]
251997 201336 Andrea Mancini 2016-03-27 2015 NaN NaN 515.0 Unattached United States MLS1 ... NaN NaN NaN NaN NaN NaN NaN False 23.619924 (2010, 2015]
251998 201336 Andrea Mancini 2015-07-01 2015 Hungary UNG1 649.0 Szombathely NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 22.880689 (2010, 2015]
251999 201336 Andrea Mancini 2015-01-20 2014 NaN NaN 515.0 Unattached Hungary UNG1 ... NaN NaN NaN NaN NaN NaN NaN False 22.437148 (2010, 2015]
252000 201336 Andrea Mancini 2014-10-27 2014 Hungary UNG1 709.0 Budapest Honvéd NaN NaN ... NaN NaN NaN NaN NaN NaN NaN False 22.204426 (2010, 2015]
252001 201336 Andrea Mancini 2013-07-01 2013 Spain Other Spain 7078.0 Valladolid B Hungary UNG1 ... NaN NaN NaN NaN NaN NaN 0.0 False 20.882017 (2010, 2015]
252002 201336 Andrea Mancini 2012-07-01 2012 England GB21 9265.0 Man City U21 Spain Other Spain ... NaN NaN NaN NaN NaN NaN 0.0 False 19.882681 (2010, 2015]
252004 201336 Andrea Mancini 2012-01-01 2011 England GB21 9265.0 Man City U21 Italy Other Italy ... NaN NaN NaN NaN NaN NaN 0.0 True 19.384382 (2010, 2015]
252006 201336 Andrea Mancini 2011-11-01 2011 England GB21 9265.0 Man City U21 England GB3 ... NaN NaN NaN NaN NaN NaN 0.0 True 19.217369 (2010, 2015]
252007 201336 Andrea Mancini 2010-11-01 2010 Italy ITJ1 14848.0 Bologna England GB21 ... NaN NaN NaN NaN NaN NaN 0.0 False 18.218033 (2005, 2010]
252008 201336 Andrea Mancini 2009-07-01 2009 Italy Other Italy 24432.0 Inter Youth Italy ITJ2 ... NaN NaN NaN NaN NaN NaN 0.0 False 16.881935 (2005, 2010]
252010 201336 Andrea Mancini 2008-09-01 2008 Italy Other Italy 24432.0 Inter Youth Italy Other Italy ... NaN NaN NaN NaN NaN NaN 0.0 True 16.052349 (2005, 2010]

174779 rows × 58 columns


In [50]:
players[players['id']== 146494 ]


Out[50]:
id Display name Name in home country Date of birth Place of birth Country of birth Age Height Nationality Nationality 2 ... Date of last contract extension Glove Outfitter Shoe model Shoe size day of death facebook instagram twitter website
id
146494.0 146494.0 Anthony Forde NaN 1993-11-16 Ballingarry, County Limerick Ireland 22.0 1.77 Ireland None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

1 rows × 41 columns


In [41]:
players


Out[41]:
id Display name Name in home country Date of birth Place of birth Country of birth Age Height Nationality Nationality 2 ... Date of last contract extension Glove Outfitter Shoe model Shoe size day of death facebook instagram twitter website
id
4.0 4.0 Youri Djorkaeff Youri Raffi Djorkaeff 1968-03-09 Lyon France 48.0 1.79 France Armenia ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
104.0 104.0 Fredi Bobic Fredi Bobič 1971-10-30 Maribor Jugoslawien (SFR) 44.0 1.87 Germany None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN https://www.fredibobic.de
192.0 192.0 Markus Babbel NaN 1972-09-08 München Germany 43.0 1.91 Germany None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
205.0 205.0 Nils-Eric Johansson NaN 1980-01-13 Stockholm Sweden 36.0 1.87 Sweden None ... 2015-07-02 00:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN
301.0 301.0 Thomas Gravesen NaN 1976-03-11 Vejle Denmark 40.0 1.78 Denmark None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
324.0 324.0 Stig Töfting Stig Tøfting 1969-08-14 Aarhus Denmark 46.0 1.76 Denmark None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
669.0 669.0 Brian O'Neil NaN 1972-09-06 Paisley Scotland 43.0 1.85 Scotland None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
916.0 916.0 Christian Ziege NaN 1972-02-01 Berlin Germany 44.0 1.86 Germany None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
919.0 919.0 Dietmar Hamann NaN 1973-08-27 Waldsassen Germany 42.0 1.88 Germany None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1397.0 1397.0 Michael Owen Michael James Owen 1979-12-14 Chester England 36.0 1.73 England None ... NaN NaN NaN NaN NaN NaN NaN NaN https://twitter.com/themichaelowen https://www.michaelowen.com
1419.0 1419.0 Rigobert Song Rigobert Song Bahanag 1976-07-01 Nkenglicock Cameroon 39.0 1.83 Cameroon France ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1440.0 1440.0 Uwe Rösler NaN 1968-11-15 Altenburg DDR 47.0 1.85 Germany None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1450.0 1450.0 Lilian Laslandes NaN 1971-09-04 Pauillac France 44.0 1.86 France None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1529.0 1529.0 Joe-Max Moore Joseph Max Moore 1971-02-23 Tulsa, Oklahoma United States 45.0 1.75 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1573.0 1573.0 Thomas Hitzlsperger NaN 1982-04-05 München Germany 34.0 1.84 Germany None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2888.0 2888.0 Bernt Haas NaN 1978-04-08 Wien Austria 38.0 1.87 Switzerland Austria ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2998.0 2998.0 Robert Huth NaN 1984-08-18 Berlin DDR 31.0 1.91 Germany None ... NaN NaN NaN NaN NaN NaN NaN NaN https://twitter.com/robert_huth NaN
3001.0 3001.0 Radostin Kishishev Радостин Кишишев 1974-07-30 Burgas Bulgaria 41.0 1.80 Bulgaria None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3087.0 3087.0 Mark Fish NaN 1974-03-14 Cape Town, Western Cape South Africa 42.0 1.87 South Africa None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3088.0 3088.0 Lucas Radebe Lucas Valeriu Radebe 1969-04-12 Soweto, Gauteng South Africa 47.0 1.86 South Africa None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3089.0 3089.0 Shaun Bartlett Thurston Shaun Bartlett 1972-10-31 Cape Town, Western Cape South Africa 43.0 1.88 South Africa None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3092.0 3092.0 Jason Euell Jason Joseph Euell 1977-02-06 Lambeth England 39.0 1.80 Jamaica England ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3093.0 3093.0 Carl Cort Carl Edward Richard Cort 1977-11-01 London England 38.0 1.93 Guyana England ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3095.0 3095.0 Jesper Blomqvist Lars Jesper Blomqvist 1974-02-05 Tavelsjö Sweden 42.0 1.76 Sweden None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3098.0 3098.0 Olof Mellberg Erik Olof Mellberg 1977-09-03 Gullspång Sweden 38.0 1.87 Sweden None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3099.0 3099.0 Claus Jensen Claus William Jensen 1977-04-29 Nykøbing Denmark 39.0 1.83 Denmark None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3102.0 3102.0 Matt Holland Matthew Rhys Holland 1974-04-11 Bury England 42.0 1.75 Ireland None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN https://www.matthollandweb.com/
3103.0 3103.0 Andy Todd Andrew John James Todd 1974-09-21 Derby England 41.0 1.78 England None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3105.0 3105.0 Bjarne Goldbaek Bjarne Goldbæk 1968-10-06 Nykøbing Denmark 47.0 1.77 Denmark None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3109.0 3109.0 Steven Gerrard Steven George Gerrard 1980-05-30 Whiston England 35.0 1.83 England None ... NaN NaN adidas NaN NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
372377.0 372377.0 Calle Brown NaN 1992-01-07 Leesburg, Virginia United States 24.0 1.95 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
372933.0 372933.0 Neco Brett Neco Jeborie Brett 1992-03-22 Kingston Jamaica 24.0 1.72 Jamaica None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
375074.0 375074.0 Danilo Acosta NaN 1997-11-07 San Pedro Sula Honduras 18.0 1.80 Honduras United States ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
382033.0 382033.0 Matheus Silva NaN 1996-12-08 São Paulo Brazil 19.0 1.88 Brazil None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
401361.0 401361.0 Mason Stajduhar NaN 1997-12-02 Salem, Massachusetts United States 18.0 1.88 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
413158.0 413158.0 Joey Calistri Joseph Vito Calistri 1993-11-20 Deerfield, Illinois United States 22.0 1.77 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
415334.0 415334.0 Aarón Guillén NaN 1993-06-23 Chihuahua Mexico 22.0 1.80 United States Mexico ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417346.0 417346.0 Jack Harrison NaN 1996-11-20 Stoke-on-Trent England 19.0 1.75 England None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417347.0 417347.0 Brandon Vincent NaN 1994-01-05 Los Angeles, California United States 22.0 1.80 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417348.0 417348.0 Richmond Laryea NaN 1995-01-07 Toronto, Ontario Canada 21.0 1.75 Canada None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417349.0 417349.0 Andrew Tarbell NaN 1993-10-07 Mandeville, Louisiana United States 22.0 1.90 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417350.0 417350.0 Tsubasa Endoh 遠藤 翼 1993-08-20 Tokio, Tokio Japan 22.0 1.70 Japan None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417381.0 417381.0 Jordan McCrary Jordan Christopher McCrary 1993-07-28 Alpharetta, Georgia United States 22.0 1.76 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417383.0 417383.0 Jonathan Campbell NaN 1993-06-27 Greensboro, North Carolina United States 22.0 1.89 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417384.0 417384.0 Hadji Barry NaN 1992-12-08 Conakry Guine 23.0 1.80 Guine None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417386.0 417386.0 Cole Seiler NaN 1994-02-05 Anderson, South Carolina United States 22.0 1.85 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417387.0 417387.0 Ryan Herman NaN 1993-06-18 Bellevue, Wyoming United States 22.0 NaN United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417388.0 417388.0 Justin Bilyeu NaN 1994-02-03 St. Louis, Missouri United States 22.0 1.88 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417389.0 417389.0 Rodrigo Saravia Rodrigo Saravia Samayoa 1993-02-22 Guatemala-Stadt Guatemala 23.0 1.80 Guatemala None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417390.0 417390.0 Ben Polk NaN 1992-09-19 Phoenix, Arizona United States 23.0 1.75 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417393.0 417393.0 Alex Morrell NaN 1994-05-11 Lakeland, Florida United States 22.0 NaN United States None ... 2016-03-11 00:00:00 NaN NaN NaN NaN NaN NaN NaN NaN NaN
417616.0 417616.0 Tony Alfaro NaN 1993-06-15 Santa Barbara, Kalifornien United States 22.0 1.87 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
417618.0 417618.0 Michael Gamble NaN 1994-01-05 Beford England 22.0 NaN United States England ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
419247.0 419247.0 Christian Martínez Christian Jesús Martínez 1997-02-06 Panama City Panama 19.0 1.70 Panama None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
425006.0 425006.0 Colin Bonner NaN 1994-05-01 Baltimore, Maryland United States 22.0 1.93 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
425266.0 425266.0 Matt Pacifici NaN 1993-08-31 Charlotte, North Carolina United States 22.0 1.88 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
425306.0 425306.0 Matt Turner NaN 1994-06-24 NaN NaN 21.0 NaN United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
425308.0 425308.0 Chris Froschauer NaN 1994-02-15 Lexington, Kentucky United States 22.0 1.93 United States None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
427612.0 427612.0 Femi Hollinger-Janzen NaN 1993-12-14 Cotonou Benin 22.0 1.83 Benin None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
435608.0 435608.0 Agustín Jara NaN 1992-06-01 Corral de Bustos Argentina 23.0 1.78 Argentina None ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

27081 rows × 41 columns


In [18]:
transfers['Age']=transfers[['Date of birth','date','season']].apply(lambda x:getAgeWithSeasonAdjustment(*x),axis=1)/ np.timedelta64(1, 'Y')
transfers[transfers['date'].apply(lambda x:x.year)<transfers['season']][['Date of birth','date','season','Age']]


Out[18]:
Date of birth date season Age
27680 1995-06-30 2012-07-01 2013 17.005140
27871 1996-09-02 2014-10-01 2015 18.078400
29898 1994-05-27 2011-07-01 2012 17.095491
30471 1984-06-27 2006-07-01 2007 22.010034
37401 1983-05-04 2002-07-01 2003 19.159873
43823 1982-02-09 2004-07-01 2005 22.390604
51845 1988-10-08 2011-08-31 2012 22.894378
64350 1976-09-16 2007-07-01 2010 30.787764
64722 1979-09-06 2012-07-01 2013 32.819291
88549 1977-02-21 2014-07-01 2015 37.356003
95536 1988-01-01 2012-07-01 2013 24.498792
98518 1990-09-16 2013-08-07 2014 22.891640
107390 1988-08-29 2004-07-01 2005 15.838792
118259 1980-08-22 2006-03-01 2009 25.522769
152327 1992-02-08 2008-07-01 2009 16.394587
170880 1996-12-07 2012-07-01 2013 15.565001
174268 1968-09-08 1995-06-25 1997 26.793158
175781 1976-07-01 2001-09-27 2002 25.240765
176248 1971-12-24 1994-08-01 1995 22.604160
176371 1983-07-23 2006-08-17 2007 23.069604
180505 1984-11-01 2006-08-17 2007 21.791002
182328 1980-01-26 2002-08-20 2005 22.565830
182530 1979-12-25 2002-07-01 2004 22.516547
184770 1984-06-15 2004-08-23 2005 20.189326
184868 1987-07-23 2004-08-23 2005 17.087278
185451 1987-09-25 2012-07-23 2013 24.827341
188158 1990-07-13 2004-07-29 2008 14.045463
189966 1990-03-29 2008-07-18 2009 18.305646
192716 1991-04-04 2008-07-01 2009 17.243338
192735 1991-05-17 2009-08-05 2011 18.220771
194178 1993-02-07 2012-08-15 2013 19.518539
195594 1988-06-25 2009-01-30 2010 20.600012
200888 1985-01-29 2008-08-03 2010 23.510407
221135 1974-04-01 2014-07-01 2015 40.249971
223085 1981-12-30 2013-07-01 2014 31.502358
230488 1984-09-25 2014-11-11 2015 30.127929
230583 1989-03-20 1909-07-01 2009 -79.719638
237776 1995-03-30 2012-07-01 2013 17.257028
244261 1986-10-02 2013-12-18 2014 27.212058
250709 1992-09-21 2012-08-01 2013 19.860777

In [17]:
transfers.columns


Out[17]:
Index([u'id', u'playerName', u'date', u'season', u'fromCountry', u'fromLeague',
       u'fromTeamId', u'fromTeamName', u'toCountry', u'toLeague', u'toTeamId',
       u'toTeamName', u'mv', u'fee', u'Display name', u'Name in home country',
       u'Date of birth', u'Place of birth', u'Country of birth', u'Age',
       u'Height', u'Nationality', u'Nationality 2', u'Position group',
       u'Position', u'Main position', u'Side position', u'Foot',
       u'National team id', u'Intl caps', u'Intl goals', u'Player's agent',
       u'Player's agent id', u'Current club', u'Current club id',
       u'In the team since', u'Contract until', u'on loan from',
       u'on loan from club id', u'Contract there until', u'2nd club',
       u'2nd club id', u'Complete name', u'Contract option',
       u'Date of last contract extension', u'Glove', u'Outfitter',
       u'Shoe model', u'Shoe size', u'day of death', u'facebook', u'instagram',
       u'twitter', u'website', u'feeValue', u'isLoan'],
      dtype='object')

In [11]:
transfers[transfers['Age']==4]


Out[11]:
id playerName date season fromCountry fromLeague fromTeamId fromTeamName toCountry toLeague ... Outfitter Shoe model Shoe size day of death facebook instagram twitter website feeValue isLoan
73932 89591 Felix Klaus 1997-07-01 1997 Germany Other Germany 40042.0 Bösensell Jgd. Germany Other Germany ... NaN NaN NaN NaN https://www.facebook.com/FelixKlaus36 https://www.instagram.com/fk_11/ NaN NaN 0.0 False

1 rows × 56 columns


In [24]:
pd.concat(,axis=1)


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-24-0a7b749a77dd> in <module>()
----> 1 pd.concat(transfers[['Date of birth','date','season']],transfers[['Date of birth','date','season']].apply(lambda x:getAgeWithSeasonAdjustment(*x),axis=1),axis=1)

TypeError: concat() got multiple values for keyword argument 'axis'

In [10]:
print transfers['id'].nunique()
print transfers['id'].count()
print loans['id'].count()
print nonloans['id'].count()

# with GB2:
#25443
#206201
#57085
#149116

#without GB2:
#23454
#188907
#49859
#139048


23454
188907
49859
139048

In [99]:
transfers[transfers['feeValue']>=50000000]#['id'].nunique()


Out[99]:
id playerName date season fromCountry fromLeague fromTeamId fromTeamName toCountry toLeague toTeamId toTeamName mv fee feeValue isLoan
9836 8198 Cristiano Ronaldo 2009-07-01 2009 England GB1 985 Manchester Utd. Spain ES1 418 Real Madrid 60000000 94,00 Mill. € 94000000 False
10260 3410 Hernán Crespo 2000-07-11 2000 Italy IT1 130 AC Parma Italy IT1 398 Lazio NaN 55,00 Mill. € 55000000 False
18258 7767 Fernando Torres 2011-01-31 2010 England GB1 31 Liverpool England GB1 631 Chelsea 50000000 58,50 Mill. € 58500000 False
18960 39381 Gareth Bale 2013-09-01 2013 England GB1 148 Spurs Spain ES1 418 Real Madrid 65000000 101,00 Mill. € 101000000 False
24185 44352 Luis Suárez 2014-07-11 2014 England GB1 31 Liverpool Spain ES1 131 FC Barcelona 52000000 81,72 Mill. € 81720000 False
24927 134425 Raheem Sterling 2015-07-14 2015 England GB1 31 Liverpool England GB1 281 Manchester City 40000000 62,50 Mill. € 62500000 False
28308 88755 Kevin De Bruyne 2015-08-30 2015 Germany L1 82 VfL Wolfsburg England GB1 281 Manchester City 45000000 74,00 Mill. € 74000000 False
29888 45320 Ángel Di María 2015-08-06 2015 England GB1 985 Manchester Utd. France FR1 583 Paris SG 50000000 63,00 Mill. € 63000000 False
29889 45320 Ángel Di María 2014-08-26 2014 Spain ES1 418 Real Madrid England GB1 985 Manchester Utd. 50000000 75,00 Mill. € 75000000 False
30723 182877 Anthony Martial 2015-09-01 2015 France FR1 162 Monaco England GB1 985 Manchester Utd. 8000000 50,00 Mill. € 50000000 False
46335 3366 Kaká 2009-07-01 2009 Italy IT1 5 AC Milan Spain ES1 418 Real Madrid 55000000 65,00 Mill. € 65000000 False
46616 3455 Zlatan Ibrahimovic 2009-07-27 2009 Italy IT1 46 Inter Spain ES1 131 FC Barcelona 45000000 69,50 Mill. € 69500000 False
50788 68290 Neymar 2013-07-01 2013 Brazil BRA1 221 Santos FC Spain ES1 131 FC Barcelona 50000000 88,20 Mill. € 88200000 False
52735 88103 James Rodríguez 2014-07-22 2014 France FR1 162 Monaco Spain ES1 418 Real Madrid 60000000 75,00 Mill. € 75000000 False
79182 5023 Gianluigi Buffon 2001-07-03 2001 Italy IT1 130 AC Parma Italy IT1 506 Juventus NaN 52,88 Mill. € 52880000 False
92515 48280 Edinson Cavani 2013-07-16 2013 Italy IT1 6195 SSC Napoli France FR1 583 Paris SG 55000000 64,50 Mill. € 64500000 False
143334 80562 Hulk 2012-09-03 2012 Portugal PO1 720 FC Porto Russia RU1 964 Zenit S-Pb 37000000 55,00 Mill. € 55000000 False

In [116]:
players


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-116-03c2832044f4> in <module>()
----> 1 players

NameError: name 'players' is not defined

In [88]:
t=(transfers.groupby('id')['feeValue'].max()+1).apply(math.log10).apply(math.floor).value_counts().sort_index(ascending=False).drop(0)
t.index = t.index.map(lambda x: "over "+locale.format("%d",int(math.pow(10,x)),grouping=True))

t.plot.bar(figsize=(6,6))


Out[88]:
<matplotlib.axes._subplots.AxesSubplot at 0x113fdd550>

In [111]:
t=(nonloans['mv']+1).apply(math.log10).apply(math.floor).value_counts().sort_index(ascending=False)#.drop(3)
t.index = t.index.map(lambda x: locale.format("%d",int(math.pow(10,x) if x>1 else 0),grouping=True)+'+')

t.plot.pie(figsize=(6,6))


Out[111]:
<matplotlib.axes._subplots.AxesSubplot at 0x11485da10>

In [115]:
t=(nonloans['feeValue']+1).apply(math.log10).apply(math.floor).value_counts().sort_index(ascending=False).drop([3,8])
t.index = t.index.map(lambda x: locale.format("%d",int(math.pow(10,x) if x>1 else 0),grouping=True)+'+')

t.plot.pie(figsize=(6,6))


Out[115]:
<matplotlib.axes._subplots.AxesSubplot at 0x116870650>

In [36]:
transfers = pd.read_csv('../data/merged/transfers.csv')
loans=transfers[transfers['isLoan']]
nonloans=transfers[~transfers['isLoan']]

In [94]:
transfers[transfers['fromTeamId'].isin([464,12604])]
#transfers[pd.notnull(transfers['newToCountry'])]


Out[94]:
id playerName date season fromCountry fromLeague fromTeamId fromTeamName toCountry toLeague toTeamId toTeamName mv fee feeValue isLoan
366 6264 Ricardo Gardner 1997-07-01 1997 Jamaica Other Jamaica 464 Own U19 Jamaica Other Jamaica 1178 Harbour View NaN - NaN False
1783 3133 Nwankwo Kanu 1992-07-01 1992 Nigeria Other Nigeria 464 Own U19 Nigeria Other Nigeria 11321 FC Heartland NaN - NaN False
2162 3189 Laurén 1995-07-01 1995 Spain Other Spain 464 Own U19 Spain Other Spain 6685 Utrera NaN - NaN False
2414 13467 Richard Jackson 1997-07-01 1997 England Other England 464 Own U19 England Other England 971 Scarborough Athletic NaN - NaN False
3680 24485 Idan Tal 1994-07-01 1994 Israel Other Israel 464 Own U19 Israel Other Israel 17580 H. Jerusalem NaN ? NaN False
4297 3692 Jussi Jääskeläinen 1994-05-01 1993 Finland Other Finland 464 Own U19 Finland Other Finland 3778 Mikkelin Kissat NaN - NaN False
6378 3199 Rami Shaaban 1994-01-01 1993 Sweden Other Sweden 464 Own U19 Sweden Other Sweden 8585 Saltsjöbadens NaN - NaN False
6705 3806 Jihai Sun 1995-07-01 1995 China Other China 464 Own U19 China Other China 3178 DL Shide NaN - NaN False
7795 3800 Édouard Cissé 1996-07-01 1996 France Other France 464 Own U19 France Other France 3166 FC Pau NaN - NaN False
8001 3374 Njitap Geremi 1995-07-01 1995 Cameroon Other Cameroon 464 Own U19 Cameroon Other Cameroon 3320 Racing Bafoussam NaN - NaN False
8212 3792 Geoff Horsfield 1993-02-01 1992 England Other England 464 Own U19 England Other England 971 Scarborough Athletic NaN - NaN False
8622 6176 Isaac Okoronkwo 1994-01-01 1993 Nigeria Other Nigeria 464 Own U19 Nigeria Other Nigeria 645 Enyimba Aba NaN - NaN False
9123 34347 Alan Sheehan 2002-07-01 2002 Ireland Other Ireland 464 Own U19 Ireland Other Ireland 6064 Belvedere FC NaN - NaN False
9457 8559 Yakubu Aiyegbeni 1998-07-01 1998 Nigeria Other Nigeria 464 Own U19 Nigeria Other Nigeria 1549 Julius Berger Lagos NaN - NaN False
10186 16092 Paul Smith 1997-07-01 1997 England Other England 464 Own U19 England Other England 3786 Walton & Hersham FC NaN - NaN False
10360 4308 Dejan Stefanovic 1992-07-01 1992 Serbia Other Serbia 464 Own U19 Serbia Other Serbia 11043 Dinamo Vranje NaN - NaN False
11317 22741 Morten Gamst Pedersen 1999-01-01 1998 Norway Other Norway 464 Own U19 Norway Other Norway 5754 IL Norild NaN - NaN False
12542 28878 Ryan Nelsen 1996-06-01 1995 New Zealand Other New Zealand 464 Own U19 New Zealand Other New Zealand 28545 Christchurch United NaN - NaN False
13984 13515 Nathan Ellington 1998-07-01 1998 England Other England 464 Own U19 England Other England 3786 Walton & Hersham FC NaN - NaN False
14083 13543 Gary Teale 1996-07-01 1996 Scotland Other Scotland 464 Own U19 Scotland Other Scotland 3457 Clydebank FC NaN - NaN False
16217 15561 Alan Quinn 1997-07-01 1997 Ireland Other Ireland 464 Own U19 Ireland Other Ireland 6142 Cherry Orchard FC NaN - NaN False
17469 62240 Maynor Figueroa 1999-07-01 1999 Honduras Other Honduras 464 Own U19 Honduras Other Honduras 2445 CD Victoria NaN - NaN False
18272 1610 Rade Prica 1997-01-01 1996 Sweden Other Sweden 464 Own U19 Sweden Other Sweden 5672 Ljungby IF NaN - NaN False
18498 33489 Carlos Edwards 1999-07-01 1999 Trinidad and Tobago Other Trinidad and Tobago 464 Own U19 Trinidad and Tobago Other Trinidad and Tobago 8622 Defence Force NaN - NaN False
18508 33493 Steve Howard 1994-07-01 1994 England Other England 464 Own U19 England Other England 8623 Tow Law Town NaN - NaN False
18608 7125 Richard Kingson 1995-07-01 1995 Ghana Other Ghana 464 Own U19 Ghana Other Ghana 11584 Accra Great Olympics NaN - NaN False
18710 18734 Gilberto 1993-01-01 1992 Brazil Other Brazil 464 Own U19 Brazil Other Brazil 9138 America RJ NaN - NaN False
19308 38178 Amr Zaki 2001-07-01 2001 Egypt Other Egypt 464 Own U19 Egypt Other Egypt 19466 Mansoura NaN - NaN False
19857 5652 Marc-Antoine Fortuné 1998-07-01 1998 France Other France 464 Own U19 France Other France 3915 FC Angoulême NaN - NaN False
20135 16576 Carlos Cuéllar 2000-07-01 2000 Spain Other Spain 464 Own U19 Spain Other Spain 4030 CD Calahorra NaN - NaN False
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
268501 20753 Milen Georgiev 1992-07-01 1992 Bulgaria Other Bulgaria 464 Own U19 Bulgaria Other Bulgaria 13288 Naftex NaN - NaN False
268683 22348 Tim Matthys 2000-07-01 2000 Belgium Other Belgium 464 Own U19 Belgium Other Belgium 5304 KSV Sottegem NaN - NaN False
269324 26375 Ludwin Van Nieuwenhuyze 1996-07-01 1996 Belgium Other Belgium 464 Own U19 Belgium Other Belgium 2478 KRC Harelbeke NaN - NaN False
270070 44060 Vusumuzi Nyoni 2002-07-01 2002 Zimbabwe Other Zimbabwe 464 Own U19 Zimbabwe Other Zimbabwe 10665 The Highlanders NaN - NaN False
270136 33836 Ali Bouabé 1997-07-01 1997 Morocco Other Morocco 464 Own U19 Morocco MAR1 9099 FAR Rabat NaN - NaN False
270394 48064 Sammy Bossut 2003-07-01 2003 Belgium Other Belgium 464 Own U19 Belgium Other Belgium 10370 SW Harelbeke NaN - NaN False
270546 22709 Vilmos Vanczák 2004-07-01 2004 Hungary Other Hungary 12604 Own Youth Hungary UNG1 708 Újpest FC NaN - NaN False
271142 34158 Hassan El Mouataz 2000-07-01 2000 Morocco Other Morocco 464 Own U19 Morocco MAR1 9099 FAR Rabat NaN - NaN False
271372 41393 Kevin Oris 2002-07-01 2002 Belgium Other Belgium 464 Own U19 Belgium Other Belgium 7872 AC Olen NaN - NaN False
271431 19896 Wouter Biebauw 2001-07-01 2001 Belgium Other Belgium 464 Own U19 Belgium Other Belgium 3163 SWI Harelbeke NaN - NaN False
271455 47546 Honour Gombami 2001-07-01 2001 Zimbabwe Other Zimbabwe 464 Own U19 Zimbabwe Other Zimbabwe 10665 The Highlanders NaN - NaN False
272091 45161 Mbaye Leye 2000-07-01 2000 Senegal Other Senegal 464 Own U19 Senegal Other Senegal 4727 Dakar UC NaN - NaN False
272193 41100 Steven de Petter 2003-07-01 2003 Belgium Other Belgium 464 Own U19 Belgium Other Belgium 1201 FC Denderleeuw NaN - NaN False
272211 41102 David Destorme 2000-07-01 2000 Belgium Other Belgium 464 Own U19 Belgium Other Belgium 5409 KFC Evergem NaN - NaN False
272341 50354 Jan Slovenciak 2000-07-01 2000 Slovakia Other Slovakia 464 Own U19 Slovakia Other Slovakia 13903 Rimavska Sobota NaN - NaN False
272363 52412 Mohamed Amroune 2002-07-01 2002 Algeria Other Algeria 464 Own U19 Algeria ALG1 13365 CR Belouizdad NaN - NaN False
272830 39825 Tiko 1999-07-01 1999 Congo DR Other Congo DR 464 Own U19 Congo DR Other Congo DR 8428 TP Mazembe NaN - NaN False
273239 85254 Momoudou Ceesay 2006-01-01 2005 The Gambia Other The Gambia 464 Own U19 The Gambia Other The Gambia 15989 Wallidan NaN - NaN False
273305 77663 Khaleem Hyland 2006-07-01 2006 Trinidad and Tobago Other Trinidad and Tobago 464 Own U19 Trinidad and Tobago Other Trinidad and Tobago 5581 Jabloteh NaN - NaN False
273566 57484 Zahir Zerdab 2002-07-01 2002 France Other France 464 Own U19 France Other France 10730 US Roye NaN - NaN False
274205 31644 Cédric Bétrémieux 2000-07-01 2000 France Other France 464 Own U19 France Other France 6639 AC Cambrai NaN - NaN False
274411 37857 Ernest Webnje N'For 2004-07-01 2004 Cameroon Other Cameroon 464 Own U19 Cameroon Other Cameroon 3792 Sable FC de Batie NaN - NaN False
274585 117804 Sören Dutoit 2007-07-01 2007 Belgium Other Belgium 464 Own U19 Belgium Other Belgium 3163 SWI Harelbeke NaN - NaN False
274709 85091 Samuel Yeboah 2002-07-01 2002 Ghana Other Ghana 12604 Own Youth Ghana Other Ghana 13603 Heart of Lions NaN - NaN False
274749 51831 Hervé Onana 2004-07-01 2004 Cameroon Other Cameroon 464 Own U19 Cameroon Other Cameroon 20293 Akonolinga NaN - NaN False
274872 46286 Dialiba 2005-07-01 2005 Senegal Other Senegal 464 Own U19 Senegal Other Senegal 4727 Dakar UC NaN - NaN False
274892 117976 Moussa Traoré 2007-07-01 2007 Burkina Faso Other Burkina Faso 464 Own U19 Burkina Faso Other Burkina Faso 3154 Santos FC NaN - NaN False
275188 125933 Eric Yopa 2006-07-01 2006 Cameroon Other Cameroon 464 Own U19 Cameroon Other Cameroon 5070 Union Douala NaN - NaN False
282541 26862 Alex Zotinca 1995-07-01 1995 Romania Other Romania 464 Own U19 Romania Other Romania 6446 FC Inter Sibiu NaN - NaN False
289506 160254 Davy Armstrong 2010-08-01 2010 United States Other United States 12604 Own Youth United States MLS1 1247 Colorado NaN - NaN False

285 rows × 16 columns


In [38]:
#transfers['toCountry'] = 
transfers['newToCountry']=np.where(transfers['fromTeamId'].isin([75,123,515,2113,2077]),transfers['fromCountry'],transfers['toCountry'])

In [5]:
transfers[transfers['toTeamId']==515]


Out[5]:
id playerName date season fromCountry fromLeague fromTeamId fromTeamName toCountry toLeague toTeamId toTeamName mv fee feeValue isLoan
5 4115 Chris Baird 2014-01-31 2013 England GB2 1032 Reading NaN NaN 515 Unattached 700000 - NaN False
19 4265 James Scowcroft 2010-07-01 2010 England NaN 1150 Leyton Orient NaN NaN 515 Unattached 1000000 - NaN False
129 3179 Carlton Cole 2015-07-01 2015 England GB1 379 West Ham NaN NaN 515 Unattached 1500000 - NaN False
131 3179 Carlton Cole 2013-07-01 2013 England GB1 379 West Ham NaN NaN 515 Unattached 3500000 - NaN False
155 3266 Jérémie Aliadière 2010-07-01 2010 England GB2 641 Middlesbrough NaN NaN 515 Unattached 3000000 - NaN False
168 3447 Ragnvald Soma 2013-07-01 2013 Denmark NaN 369 Lyngby BK NaN NaN 515 Unattached 100000 - NaN False
171 3447 Ragnvald Soma 2012-07-01 2012 Austria A1 170 Rapid Vienna NaN NaN 515 Unattached 350000 - NaN False
233 16169 Jermaine Johnson 2015-01-01 2014 United States NAFC 39148 Indy Eleven NaN NaN 515 Unattached 250000 - NaN False
243 3946 Jeff Smith 2011-07-01 2011 Belgium NaN 3146 Ol. Charleroi NaN NaN 515 Unattached 75000 - NaN False
261 4039 Dean Leacock 2015-07-01 2015 England NaN 3537 Crawley Town NaN NaN 515 Unattached 250000 - NaN False
279 4086 Darren Ambrose 2014-07-01 2014 England GB2 337 Birmingham NaN NaN 515 Unattached 500000 - NaN False
289 4094 Frazer Richardson 2016-07-01 2016 England NaN 1194 Rotherham NaN NaN 515 Unattached 350000 - NaN False
301 3587 Ibrahim Said 2011-06-01 2010 Egypt EGY1 3963 Ittehad NaN NaN 515 Unattached 300000 - NaN False
304 3587 Ibrahim Said 2009-04-01 2008 Egypt EGY1 3595 Ismaily NaN NaN 515 Unattached 750000 - NaN False
422 3668 Lloyd Dyer 2016-02-01 2015 England GB1 1010 Watford NaN NaN 515 Unattached 750000 - NaN False
428 3668 Lloyd Dyer 2006-03-01 2005 England GB3 1028 Millwall NaN NaN 515 Unattached 350000 - NaN False
464 3181 Lenny Pidgeley 2015-07-01 2015 England NaN 3716 Newport County NaN NaN 515 Unattached 100000 - NaN False
470 3181 Lenny Pidgeley 2010-07-01 2010 England NaN 1220 Carlisle United NaN NaN 515 Unattached 100000 - NaN False
492 3701 Youssef Sofiane 2012-07-01 2012 Algeria ALG1 18272 ES Sétif NaN NaN 515 Unattached 200000 - NaN False
496 3701 Youssef Sofiane 2009-07-01 2009 France NaN 12765 LOSC Lille B NaN NaN 515 Unattached 250000 - NaN False
510 3205 David Bentley 2013-07-01 2013 England GB1 148 Spurs NaN NaN 515 Unattached 3000000 - NaN False
535 31887 Trent McClenahan 2011-01-01 2010 England GB3 2964 Scunthorpe Utd. NaN NaN 515 Unattached 400000 - NaN False
538 31887 Trent McClenahan 2008-07-01 2008 England NaN 3064 Hereford Utd. NaN NaN 515 Unattached 75000 - NaN False
547 7335 Justin Hoyte 2015-07-01 2015 England GB3 1028 Millwall NaN NaN 515 Unattached 500000 - NaN False
586 3303 Sean Thornton 2014-07-01 2014 Wales WAL1 27843 Bala Town NaN NaN 515 Unattached NaN Free transfer 0 False
590 3303 Sean Thornton 2010-07-01 2010 England NaN 1150 Leyton Orient NaN NaN 515 Unattached 1000000 - NaN False
646 3864 Jamie Cade 2011-11-01 2011 England NaN 4077 Lewes NaN NaN 515 Unattached 50000 - NaN False
739 3928 Craig Fagan 2014-07-01 2014 England GB3 2814 Gillingham FC NaN NaN 515 Unattached 250000 - NaN False
795 3944 Wayne Buchanan 2009-07-01 2009 Northern Ireland NaN 4421 Lisburn FC NaN NaN 515 Unattached 50000 - NaN False
802 3463 Michael Chopra 2016-03-15 2015 Scotland NaN 3020 Alloa AFC NaN NaN 515 Unattached 350000 - NaN False
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
135097 225462 José Mari 2014-02-06 2013 Spain ES2 142 Real Zaragoza NaN NaN 515 Unattached 600000 - NaN False
135123 53476 Facundo Coria 2015-01-01 2014 Argentina AR1N 1030 Argentinos NaN NaN 515 Unattached 600000 - NaN False
135169 78482 Hernán Grana 2015-05-12 2014 United States MLS1 813 Columbus NaN NaN 515 Unattached 600000 - NaN False
135194 80744 Luis Marín 2015-05-27 2014 United States MLS1 4284 Kansas NaN NaN 515 Unattached 300000 - NaN False
135216 94239 Jaineil Hoilett 2015-03-01 2014 United States MLS1 8816 FC Dallas\t NaN NaN 515 Unattached 75000 - NaN False
135218 94239 Jaineil Hoilett 2014-07-01 2014 Germany NaN 7258 FSV Frankf. II NaN NaN 515 Unattached NaN - NaN False
135228 119204 Matt Dunn 2015-06-24 2014 United States MLS1 40058 NYC FC NaN NaN 515 Unattached 150000 - NaN False
135234 119204 Matt Dunn 2011-07-01 2011 Germany NaN 21048 1.FC Köln U17 NaN NaN 515 Unattached NaN - NaN False
135271 163716 Elías Vásquez 2016-01-01 2015 United States MLS1 6643 Salt Lake NaN NaN 515 Unattached 200000 - NaN False
135277 164560 Jordan Murrell 2015-11-30 2015 United States NaN 45806 Real Monarchs NaN NaN 515 Unattached 50000 - NaN False
135334 191921 Akira Fitzgerald 2011-01-01 2010 United States NaN 9783 Demon Deacons NaN NaN 515 Unattached NaN - NaN False
135413 253761 Tomás Gómez 2016-01-01 2015 United States MLS1 218 Quakes NaN NaN 515 Unattached 50000 - NaN False
135417 257020 R.J. Allen 2014-07-01 2013 Denmark NaN 5781 Skive IK NaN NaN 515 Unattached 50000 - NaN False
135419 257020 R.J. Allen 2012-02-16 2011 United States NaN 6642 Chivas USA NaN NaN 515 Unattached NaN - NaN False
135500 308767 Billy Knutsen 2015-01-01 2014 United States MLS1 218 Quakes NaN NaN 515 Unattached NaN - NaN False
135586 354847 Matt Jeffery 2015-01-31 2014 United States MLS1 1247 Colorado NaN NaN 515 Unattached NaN - NaN False
135601 354893 James Rogers 2015-06-22 2015 United States MLS1 4284 Kansas NaN NaN 515 Unattached 50000 - NaN False
135603 354896 Adam Montague 2015-03-01 2014 United States MLS1 6321 Vancouver NaN NaN 515 Unattached 50000 - NaN False
135610 355587 Kingsley Bryce 2016-03-02 2015 United States MLS1 432 Chicago NaN NaN 515 Unattached 50000 - NaN False
135643 372764 Ignacio Maganto 2016-02-29 2015 United States MLS1 1061 Los Angeles NaN NaN 515 Unattached NaN - NaN False
135661 147490 Diego Rodríguez 2013-07-01 2013 Spain NaN 5649 A. Malagueño NaN NaN 515 Unattached NaN - NaN False
135671 26457 Juan Manuel Martínez 2015-07-17 2015 Argentina AR1N 189 Boca Juniors NaN NaN 515 Unattached 2000000 - NaN False
135705 52937 Ilsinho 2015-07-01 2015 Ukraine UKR1 660 Shakhtar D. NaN NaN 515 Unattached 4000000 - NaN False
135808 131101 Stiven Mendoza 2014-07-01 2014 Colombia COLP 9961 Deportivo Cali NaN NaN 515 Unattached 150000 - NaN False
135867 190915 Clément Diop 2014-07-01 2014 France NaN 1416 SC Amiens NaN NaN 515 Unattached 100000 - NaN False
135937 280855 Charlie Horton 2015-11-23 2015 England GB2 399 Leeds NaN NaN 515 Unattached NaN - NaN False
135940 280855 Charlie Horton 2014-04-07 2013 England GB3 1072 Peterborough NaN NaN 515 Unattached NaN - NaN False
136019 435608 Agustín Jara 2016-01-01 2015 Argentina NaN 15944 Colon II NaN NaN 515 Unattached NaN - NaN False
136024 201336 Andrea Mancini 2015-07-01 2015 Hungary UNG1 649 Szombathely NaN NaN 515 Unattached 75000 - NaN False
136026 201336 Andrea Mancini 2014-10-27 2014 Hungary UNG1 709 Budapest Honvéd NaN NaN 515 Unattached 100000 - NaN False

5716 rows × 16 columns


In [95]:
nonloans['PO1'==nonloans['toLeague']].groupby('fromLeague').count().sort_values('id',ascending=False)['id'][:10].plot.bar()


Out[95]:
<matplotlib.axes._subplots.AxesSubplot at 0x1073817d0>

In [96]:
nonloans['PO1'==nonloans['toLeague']].groupby('fromLeague').sum().sort_values('feeValue',ascending=False)['feeValue'][:10].plot.bar()


Out[96]:
<matplotlib.axes._subplots.AxesSubplot at 0x10e13e350>

In [489]:
pre2001ids = transfers[transfers['season']<2001]['id'].drop_duplicates().tolist()
transfers[transfers['id'].apply(lambda i: not i in pre2001ids)]


Out[489]:
id playerName date season fromCountry fromLeague fromTeamId fromTeamName toCountry toLeague toTeamId toTeamName mv fee feeValue isLoan
161 4115 Chris Baird 2016-05-02 2015 England GB2 931 Fulham FC England GB2 22 Derby 500000 End of loan 0 True
162 4115 Chris Baird 2016-02-18 2015 England GB2 22 Derby England GB2 931 Fulham FC 500000 Loan 0 False
163 4115 Chris Baird 2015-07-01 2015 England GB1 984 West Brom England GB2 22 Derby 500000 Free transfer 0 False
164 4115 Chris Baird 2014-07-07 2014 England GB2 1132 Burnley FC England GB1 984 West Brom 700000 Free transfer 0 False
165 4115 Chris Baird 2014-03-20 2013 England NaN 515 Unattached NaN GB2 1132 Burnley FC 700000 - NaN False
166 4115 Chris Baird 2014-01-31 2013 England GB2 1032 Reading NaN NaN 515 Unattached 700000 - NaN False
167 4115 Chris Baird 2013-09-20 2013 England GB2 931 Fulham FC England GB2 1032 Reading 1000000 Free transfer 0 False
168 4115 Chris Baird 2007-07-12 2007 England GB1 180 Southampton England GB2 931 Fulham FC 750000 4,50 Mill. € 4500000 False
169 4115 Chris Baird 2004-05-10 2003 England GB1 1010 Watford England GB1 180 Southampton NaN End of loan 0 True
170 4115 Chris Baird 2004-03-17 2003 England GB1 180 Southampton England GB1 1010 Watford NaN Loan 0 False
171 4115 Chris Baird 2003-11-23 2003 England GB3 899 Walsall FC England GB1 180 Southampton NaN End of loan 0 True
172 4115 Chris Baird 2003-09-26 2003 England GB1 180 Southampton England GB3 899 Walsall FC NaN Loan 0 False
173 4115 Chris Baird 2003-07-01 2003 England GB21 36546 Southampton U21 England GB1 180 Southampton NaN - NaN False
174 4115 Chris Baird 2001-07-01 2001 England NaN 6893 Southampton U18 England GB21 36546 Southampton U21 NaN - NaN False
457 4252 Matthew Jones 2009-07-01 2009 Wales NaN 11915 Llanelli NaN NaN 75 Unknown NaN ? NaN False
458 4252 Matthew Jones 2007-07-01 2007 Wales NaN 123 End of career NaN NaN 11915 Llanelli NaN - NaN False
459 4252 Matthew Jones 2004-07-01 2004 England GB1 1003 Leicester NaN NaN 123 End of career NaN - NaN False
460 4252 Matthew Jones 2001-07-01 2001 England GB2 399 Leeds England GB1 1003 Leicester NaN 4,50 Mill. € 4500000 False
506 4265 James Scowcroft 2010-09-01 2010 England NaN 515 Unattached NaN NaN 10737 Bury Town 1000000 - NaN False
507 4265 James Scowcroft 2010-07-01 2010 England NaN 1150 Leyton Orient NaN NaN 515 Unattached 1000000 - NaN False
508 4265 James Scowcroft 2009-07-01 2009 England GB1 873 Crystal Palace England NaN 1150 Leyton Orient 1000000 Free transfer 0 False
509 4265 James Scowcroft 2006-07-01 2006 England GB3 990 Coventry City England GB1 873 Crystal Palace 3000000 750 Th. € 750000 False
510 4265 James Scowcroft 2005-07-01 2005 England GB1 1003 Leicester England GB3 990 Coventry City 3000000 Free transfer 0 False
511 4265 James Scowcroft 2005-05-01 2004 England GB2 677 Ipswich England GB1 1003 Leicester 3000000 End of loan 0 True
512 4265 James Scowcroft 2005-02-01 2004 England GB1 1003 Leicester England GB2 677 Ipswich 3000000 Loan 0 False
513 4265 James Scowcroft 2001-08-01 2001 England GB2 677 Ipswich England GB1 1003 Leicester NaN 4,50 Mill. € 4500000 False
514 10418 Stefan Oakes 2010-12-01 2010 England NaN 3539 Tamworth NaN NaN 75 Unknown 50000 Free transfer 0 False
515 10418 Stefan Oakes 2010-08-01 2010 England NaN 1198 Lincoln City England NaN 3539 Tamworth 50000 Free transfer 0 False
516 10418 Stefan Oakes 2008-07-01 2008 England NaN 2805 Wycombe England NaN 1198 Lincoln City 50000 Free transfer 0 False
517 10418 Stefan Oakes 2005-07-01 2005 England NaN 1045 Notts County England NaN 2805 Wycombe 50000 Free transfer 0 False
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
294120 417389 Rodrigo Saravia 2016-01-14 2015 United States NaN 38984 Fl Gulf Coast United States MLS1 813 Columbus NaN draft 0 False
294121 417390 Ben Polk 2016-01-14 2015 United States NaN 36097 Syracuse Athl. United States MLS1 4291 Timbers NaN draft 0 False
294122 417393 Alex Morrell 2016-01-14 2015 United States NaN 30846 University of North Florida United States MLS1 432 Chicago NaN draft 0 False
294123 417616 Tony Alfaro 2016-01-14 2015 United States NaN 46852 SCUDH United States MLS1 9636 Sounders FC\t NaN draft 0 False
294124 417618 Michael Gamble 2016-01-14 2015 United States NaN 9783 Demon Deacons United States MLS1 626 Revolution NaN draft 0 False
294125 419247 Christian Martínez 2016-12-31 2016 United States NaN 813 Columbus Panama NaN 18952 Chorrillo FC NaN End of loan 0 True
294126 419247 Christian Martínez 2016-05-17 2015 Panama NaN 18952 Chorrillo FC United States MLS1 813 Columbus NaN Loan 0 False
294127 425006 Colin Bonner 2016-01-19 2015 United States NaN 39623 UNC Wilmington United States MLS1 8816 FC Dallas\t NaN draft 0 False
294128 425266 Matt Pacifici 2016-03-04 2015 United States NaN 38369 Wildcats United States MLS1 813 Columbus NaN Free transfer 0 False
294129 425308 Chris Froschauer 2016-01-19 2015 United States NaN 9753 Ohio State University United States MLS1 1247 Colorado NaN draft 0 False
294130 427612 Femi Hollinger-Janzen 2016-01-19 2015 United States NaN 9747 Indiana Hoosier United States MLS1 626 Revolution NaN draft 0 False
294131 435608 Agustín Jara 2016-05-16 2015 United States NaN 515 Unattached NaN MLS1 8816 FC Dallas\t NaN - NaN False
294132 435608 Agustín Jara 2016-01-01 2015 Argentina NaN 15944 Colon II NaN NaN 515 Unattached NaN - NaN False
294133 279681 Emmanuel Boateng 2016-01-14 2015 Sweden SE1 699 Helsingborgs IF United States MLS1 1061 Los Angeles 200000 ? NaN False
294134 279681 Emmanuel Boateng 2013-07-19 2013 United States NaN 9767 UCSB Gauchos Sweden SE1 699 Helsingborgs IF NaN ? NaN False
294135 279681 Emmanuel Boateng 2009-07-01 2009 Ghana NaN 40902 Right to Dream United States NaN 9767 UCSB Gauchos NaN ? NaN False
294304 201336 Andrea Mancini 2016-03-27 2015 United States NaN 515 Unattached NaN MLS1 2440 DC United 75000 - NaN False
294305 201336 Andrea Mancini 2015-07-01 2015 Hungary UNG1 649 Szombathely NaN NaN 515 Unattached 75000 - NaN False
294306 201336 Andrea Mancini 2015-01-20 2014 Hungary NaN 515 Unattached NaN UNG1 649 Szombathely 100000 - NaN False
294307 201336 Andrea Mancini 2014-10-27 2014 Hungary UNG1 709 Budapest Honvéd NaN NaN 515 Unattached 100000 - NaN False
294308 201336 Andrea Mancini 2013-07-01 2013 Spain NaN 7078 Valladolid B Hungary UNG1 709 Budapest Honvéd NaN Free transfer 0 False
294309 201336 Andrea Mancini 2012-07-01 2012 England GB21 9265 Man City U21 Spain NaN 7078 Valladolid B NaN Free transfer 0 False
294310 201336 Andrea Mancini 2012-06-30 2011 Italy NaN 5615 Alma Fano England GB21 9265 Man City U21 NaN End of loan 0 True
294311 201336 Andrea Mancini 2012-01-01 2011 England GB21 9265 Man City U21 Italy NaN 5615 Alma Fano NaN Loan 0 False
294312 201336 Andrea Mancini 2011-12-01 2011 England GB3 1078 Oldham Athletic England GB21 9265 Man City U21 NaN End of loan 0 True
294313 201336 Andrea Mancini 2011-11-01 2011 England GB21 9265 Man City U21 England GB3 1078 Oldham Athletic NaN Loan 0 False
294314 201336 Andrea Mancini 2010-11-01 2010 Italy ITJ2 14848 Bologna England GB21 9265 Man City U21 NaN Free transfer 0 False
294315 201336 Andrea Mancini 2009-07-01 2009 Italy NaN 24432 Inter Youth Italy ITJ2 14848 Bologna NaN Free transfer 0 False
294316 201336 Andrea Mancini 2009-05-01 2008 Italy NaN 14924 Monza Youth Italy NaN 24432 Inter Youth NaN End of loan 0 True
294317 201336 Andrea Mancini 2008-09-01 2008 Italy NaN 24432 Inter Youth Italy NaN 14924 Monza Youth NaN Loan 0 False

136037 rows × 16 columns


In [483]:
transfers['id'].drop_duplicates().count()-8513


Out[483]:
18399

In [501]:
players.to_csv('../data/merged/players.csv',encoding='utf-8',index=False)

In [97]:
# irregular transfers (where transfer date is outside of season years) are negligible
transfers.join(transfers['date'].apply(lambda d:d.year),rsuffix='year').groupby(['season','dateyear']).count()['id'].plot.bar(figsize=(40,10))


Out[97]:
<matplotlib.axes._subplots.AxesSubplot at 0x10ea90690>

In [469]:
transfers.merge(clubs.rename(columns={'league': 'fromLeague','clubId':'fromTeamId'})[['fromTeamId','season','fromLeague']],how='left',on=['season','fromTeamId']) \
                .merge(clubs.rename(columns={'league': 'toLeague','clubId':'toTeamId'})[['toTeamId','season','toLeague']],how='left',on=['season','toTeamId'])


Out[469]:
id playerName date season fromCountry fromTeamId fromTeamName toCountry toTeamId toTeamName mv fee feeValue isLoan fromLeague toLeague
0 4096 Jacob Burns 2014-07-01 2014 Australia 970 Perth Glory NaN 123 End of career 300000 - NaN False AUS1 NaN
1 4096 Jacob Burns 2009-07-01 2009 Romania 10442 Unirea Urziceni Australia 970 Perth Glory 400000 Free transfer 0 False NaN AUS1
2 4096 Jacob Burns 2008-02-01 2007 Poland 422 Wisla Kraków Romania 10442 Unirea Urziceni 450000 Free transfer 0 False PL1 NaN
3 4096 Jacob Burns 2006-02-01 2005 England 349 Barnsley FC Poland 422 Wisla Kraków 400000 100 Th. € 100000 False GB3 PL1
4 4096 Jacob Burns 2004-01-01 2003 England 515 Unattached NaN 349 Barnsley FC NaN - NaN False NaN GB3
5 4096 Jacob Burns 2003-07-01 2003 England 399 Leeds NaN 515 Unattached NaN - NaN False GB2 NaN
6 4096 Jacob Burns 2000-07-01 2000 Australia 2500 Parra. Power England 399 Leeds NaN 375 Th. € 375000 False NaN NaN
7 4096 Jacob Burns 1999-07-01 1999 Australia 6045 Sydney United Australia 2500 Parra. Power NaN ? NaN False NaN NaN
8 4097 Kevin Lisbie 2016-01-11 2015 England 2804 Barnet NaN 515 Unattached 150000 - NaN False NaN NaN
9 4097 Kevin Lisbie 2015-07-01 2015 England 1150 Leyton Orient England 2804 Barnet 150000 Free transfer 0 False NaN NaN
10 4097 Kevin Lisbie 2015-04-15 2014 England 3684 Stevenage FC England 1150 Leyton Orient 150000 End of loan 0 True NaN NaN
11 4097 Kevin Lisbie 2015-03-17 2014 England 1150 Leyton Orient England 3684 Stevenage FC 150000 Loan 0 False NaN NaN
12 4097 Kevin Lisbie 2011-09-01 2011 England 677 Ipswich England 1150 Leyton Orient 750000 - NaN False GB2 NaN
13 4097 Kevin Lisbie 2011-06-30 2010 England 1028 Millwall England 677 Ipswich 750000 End of loan 0 True GB3 GB2
14 4097 Kevin Lisbie 2010-08-01 2010 England 677 Ipswich England 1028 Millwall 1250000 Loan 0 False GB2 GB3
15 4097 Kevin Lisbie 2010-06-30 2009 England 1060 Colchester Utd. England 677 Ipswich 1250000 End of loan 0 True GB3 GB2
16 4097 Kevin Lisbie 2009-08-01 2009 England 677 Ipswich England 1060 Colchester Utd. 1250000 Loan 0 False GB2 GB3
17 4097 Kevin Lisbie 2008-07-01 2008 England 1060 Colchester Utd. England 677 Ipswich 1250000 750 Th. € 750000 False GB3 GB2
18 4097 Kevin Lisbie 2007-07-01 2007 England 358 Charlton England 1060 Colchester Utd. 2000000 Free transfer 0 False GB2 GB3
19 4097 Kevin Lisbie 2006-06-30 2005 England 22 Derby England 358 Charlton 2500000 End of loan 0 True GB2 GB2
20 4097 Kevin Lisbie 2006-02-01 2005 England 358 Charlton England 22 Derby 2500000 Loan 0 False GB2 GB2
21 4097 Kevin Lisbie 2005-10-01 2005 England 1123 Norwich England 358 Charlton 2500000 End of loan 0 True GB1 GB2
22 4097 Kevin Lisbie 2005-09-01 2005 England 358 Charlton England 1123 Norwich 2500000 Loan 0 False GB2 GB1
23 4097 Kevin Lisbie 2000-12-31 2000 England 1039 QPR England 358 Charlton NaN End of loan 0 True NaN NaN
24 4097 Kevin Lisbie 2000-12-01 2000 England 358 Charlton England 1039 QPR NaN Loan 0 False NaN NaN
25 4097 Kevin Lisbie 1999-12-31 1999 England 1032 Reading England 358 Charlton NaN End of loan 0 True NaN NaN
26 4097 Kevin Lisbie 1999-11-01 1999 England 358 Charlton England 1032 Reading NaN Loan 0 False NaN NaN
27 4097 Kevin Lisbie 1999-04-01 1998 England 2814 Gillingham FC England 358 Charlton NaN End of loan 0 True NaN NaN
28 4097 Kevin Lisbie 1999-03-01 1998 England 358 Charlton England 2814 Gillingham FC NaN Loan 0 False NaN NaN
29 4097 Kevin Lisbie 1995-07-01 1995 England 6932 Charlton U18 England 358 Charlton NaN - NaN False NaN NaN
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
220452 417389 Rodrigo Saravia 2016-01-14 2015 United States 38984 Fl Gulf Coast United States 813 Columbus NaN draft 0 False NaN MLS1
220453 417390 Ben Polk 2016-01-14 2015 United States 36097 Syracuse Athl. United States 4291 Timbers NaN draft 0 False NaN MLS1
220454 417393 Alex Morrell 2016-01-14 2015 United States 30846 University of North Florida United States 432 Chicago NaN draft 0 False NaN MLS1
220455 417616 Tony Alfaro 2016-01-14 2015 United States 46852 SCUDH United States 9636 Sounders FC\t NaN draft 0 False NaN MLS1
220456 417618 Michael Gamble 2016-01-14 2015 United States 9783 Demon Deacons United States 626 Revolution NaN draft 0 False NaN MLS1
220457 419247 Christian Martínez 2016-12-31 2016 United States 813 Columbus Panama 18952 Chorrillo FC NaN End of loan 0 True NaN NaN
220458 419247 Christian Martínez 2016-05-17 2015 Panama 18952 Chorrillo FC United States 813 Columbus NaN Loan 0 False NaN MLS1
220459 425006 Colin Bonner 2016-01-19 2015 United States 39623 UNC Wilmington United States 8816 FC Dallas\t NaN draft 0 False NaN MLS1
220460 425266 Matt Pacifici 2016-03-04 2015 United States 38369 Wildcats United States 813 Columbus NaN Free transfer 0 False NaN MLS1
220461 425308 Chris Froschauer 2016-01-19 2015 United States 9753 Ohio State University United States 1247 Colorado NaN draft 0 False NaN MLS1
220462 427612 Femi Hollinger-Janzen 2016-01-19 2015 United States 9747 Indiana Hoosier United States 626 Revolution NaN draft 0 False NaN MLS1
220463 435608 Agustín Jara 2016-05-16 2015 United States 515 Unattached NaN 8816 FC Dallas\t NaN - NaN False NaN MLS1
220464 435608 Agustín Jara 2016-01-01 2015 Argentina 15944 Colon II NaN 515 Unattached NaN - NaN False NaN NaN
220465 279681 Emmanuel Boateng 2016-01-14 2015 Sweden 699 Helsingborgs IF United States 1061 Los Angeles 200000 ? NaN False SE1 MLS1
220466 279681 Emmanuel Boateng 2013-07-19 2013 United States 9767 UCSB Gauchos Sweden 699 Helsingborgs IF NaN ? NaN False NaN SE1
220467 279681 Emmanuel Boateng 2009-07-01 2009 Ghana 40902 Right to Dream United States 9767 UCSB Gauchos NaN ? NaN False NaN NaN
220468 201336 Andrea Mancini 2016-03-27 2015 United States 515 Unattached NaN 2440 DC United 75000 - NaN False NaN MLS1
220469 201336 Andrea Mancini 2015-07-01 2015 Hungary 649 Szombathely NaN 515 Unattached 75000 - NaN False UNG1 NaN
220470 201336 Andrea Mancini 2015-01-20 2014 Hungary 515 Unattached NaN 649 Szombathely 100000 - NaN False NaN UNG1
220471 201336 Andrea Mancini 2014-10-27 2014 Hungary 709 Budapest Honvéd NaN 515 Unattached 100000 - NaN False UNG1 NaN
220472 201336 Andrea Mancini 2013-07-01 2013 Spain 7078 Valladolid B Hungary 709 Budapest Honvéd NaN Free transfer 0 False NaN UNG1
220473 201336 Andrea Mancini 2012-07-01 2012 England 9265 Man City U21 Spain 7078 Valladolid B NaN Free transfer 0 False GB21 NaN
220474 201336 Andrea Mancini 2012-06-30 2011 Italy 5615 Alma Fano England 9265 Man City U21 NaN End of loan 0 True NaN GB21
220475 201336 Andrea Mancini 2012-01-01 2011 England 9265 Man City U21 Italy 5615 Alma Fano NaN Loan 0 False GB21 NaN
220476 201336 Andrea Mancini 2011-12-01 2011 England 1078 Oldham Athletic England 9265 Man City U21 NaN End of loan 0 True GB3 GB21
220477 201336 Andrea Mancini 2011-11-01 2011 England 9265 Man City U21 England 1078 Oldham Athletic NaN Loan 0 False GB21 GB3
220478 201336 Andrea Mancini 2010-11-01 2010 Italy 14848 Bologna England 9265 Man City U21 NaN Free transfer 0 False ITJ2 GB21
220479 201336 Andrea Mancini 2009-07-01 2009 Italy 24432 Inter Youth Italy 14848 Bologna NaN Free transfer 0 False NaN ITJ2
220480 201336 Andrea Mancini 2009-05-01 2008 Italy 14924 Monza Youth Italy 24432 Inter Youth NaN End of loan 0 True NaN NaN
220481 201336 Andrea Mancini 2008-09-01 2008 Italy 24432 Inter Youth Italy 14924 Monza Youth NaN Loan 0 False NaN NaN

220482 rows × 16 columns


In [459]:
transfers


Out[459]:
id playerName date season fromCountry fromTeamId fromTeamName toCountry toTeamId toTeamName mv fee feeValue isLoan
0 4096 Jacob Burns 2014-07-01 2014 Australia 970 Perth Glory NaN 123 End of career 300000 - NaN False
1 4096 Jacob Burns 2009-07-01 2009 Romania 10442 Unirea Urziceni Australia 970 Perth Glory 400000 Free transfer 0 False
2 4096 Jacob Burns 2008-02-01 2007 Poland 422 Wisla Kraków Romania 10442 Unirea Urziceni 450000 Free transfer 0 False
3 4096 Jacob Burns 2006-02-01 2005 England 349 Barnsley FC Poland 422 Wisla Kraków 400000 100 Th. € 100000 False
4 4096 Jacob Burns 2004-01-01 2003 England 515 Unattached NaN 349 Barnsley FC NaN - NaN False
5 4096 Jacob Burns 2003-07-01 2003 England 399 Leeds NaN 515 Unattached NaN - NaN False
6 4096 Jacob Burns 2000-07-01 2000 Australia 2500 Parra. Power England 399 Leeds NaN 375 Th. € 375000 False
7 4096 Jacob Burns 1999-07-01 1999 Australia 6045 Sydney United Australia 2500 Parra. Power NaN ? NaN False
8 4097 Kevin Lisbie 2016-01-11 2015 England 2804 Barnet NaN 515 Unattached 150000 - NaN False
9 4097 Kevin Lisbie 2015-07-01 2015 England 1150 Leyton Orient England 2804 Barnet 150000 Free transfer 0 False
10 4097 Kevin Lisbie 2015-04-15 2014 England 3684 Stevenage FC England 1150 Leyton Orient 150000 End of loan 0 True
11 4097 Kevin Lisbie 2015-03-17 2014 England 1150 Leyton Orient England 3684 Stevenage FC 150000 Loan 0 False
12 4097 Kevin Lisbie 2011-09-01 2011 England 677 Ipswich England 1150 Leyton Orient 750000 - NaN False
13 4097 Kevin Lisbie 2011-06-30 2010 England 1028 Millwall England 677 Ipswich 750000 End of loan 0 True
14 4097 Kevin Lisbie 2010-08-01 2010 England 677 Ipswich England 1028 Millwall 1250000 Loan 0 False
15 4097 Kevin Lisbie 2010-06-30 2009 England 1060 Colchester Utd. England 677 Ipswich 1250000 End of loan 0 True
16 4097 Kevin Lisbie 2009-08-01 2009 England 677 Ipswich England 1060 Colchester Utd. 1250000 Loan 0 False
17 4097 Kevin Lisbie 2008-07-01 2008 England 1060 Colchester Utd. England 677 Ipswich 1250000 750 Th. € 750000 False
18 4097 Kevin Lisbie 2007-07-01 2007 England 358 Charlton England 1060 Colchester Utd. 2000000 Free transfer 0 False
19 4097 Kevin Lisbie 2006-06-30 2005 England 22 Derby England 358 Charlton 2500000 End of loan 0 True
20 4097 Kevin Lisbie 2006-02-01 2005 England 358 Charlton England 22 Derby 2500000 Loan 0 False
21 4097 Kevin Lisbie 2005-10-01 2005 England 1123 Norwich England 358 Charlton 2500000 End of loan 0 True
22 4097 Kevin Lisbie 2005-09-01 2005 England 358 Charlton England 1123 Norwich 2500000 Loan 0 False
23 4097 Kevin Lisbie 2000-12-31 2000 England 1039 QPR England 358 Charlton NaN End of loan 0 True
24 4097 Kevin Lisbie 2000-12-01 2000 England 358 Charlton England 1039 QPR NaN Loan 0 False
25 4097 Kevin Lisbie 1999-12-31 1999 England 1032 Reading England 358 Charlton NaN End of loan 0 True
26 4097 Kevin Lisbie 1999-11-01 1999 England 358 Charlton England 1032 Reading NaN Loan 0 False
27 4097 Kevin Lisbie 1999-04-01 1998 England 2814 Gillingham FC England 358 Charlton NaN End of loan 0 True
28 4097 Kevin Lisbie 1999-03-01 1998 England 358 Charlton England 2814 Gillingham FC NaN Loan 0 False
29 4097 Kevin Lisbie 1995-07-01 1995 England 6932 Charlton U18 England 358 Charlton NaN - NaN False
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
293942 417389 Rodrigo Saravia 2016-01-14 2015 United States 38984 Fl Gulf Coast United States 813 Columbus NaN draft 0 False
293943 417390 Ben Polk 2016-01-14 2015 United States 36097 Syracuse Athl. United States 4291 Timbers NaN draft 0 False
293944 417393 Alex Morrell 2016-01-14 2015 United States 30846 University of North Florida United States 432 Chicago NaN draft 0 False
293945 417616 Tony Alfaro 2016-01-14 2015 United States 46852 SCUDH United States 9636 Sounders FC\t NaN draft 0 False
293946 417618 Michael Gamble 2016-01-14 2015 United States 9783 Demon Deacons United States 626 Revolution NaN draft 0 False
293947 419247 Christian Martínez 2016-12-31 2016 United States 813 Columbus Panama 18952 Chorrillo FC NaN End of loan 0 True
293948 419247 Christian Martínez 2016-05-17 2015 Panama 18952 Chorrillo FC United States 813 Columbus NaN Loan 0 False
293949 425006 Colin Bonner 2016-01-19 2015 United States 39623 UNC Wilmington United States 8816 FC Dallas\t NaN draft 0 False
293950 425266 Matt Pacifici 2016-03-04 2015 United States 38369 Wildcats United States 813 Columbus NaN Free transfer 0 False
293952 425308 Chris Froschauer 2016-01-19 2015 United States 9753 Ohio State University United States 1247 Colorado NaN draft 0 False
293953 427612 Femi Hollinger-Janzen 2016-01-19 2015 United States 9747 Indiana Hoosier United States 626 Revolution NaN draft 0 False
293954 435608 Agustín Jara 2016-05-16 2015 United States 515 Unattached NaN 8816 FC Dallas\t NaN - NaN False
293955 435608 Agustín Jara 2016-01-01 2015 Argentina 15944 Colon II NaN 515 Unattached NaN - NaN False
293956 279681 Emmanuel Boateng 2016-01-14 2015 Sweden 699 Helsingborgs IF United States 1061 Los Angeles 200000 ? NaN False
293957 279681 Emmanuel Boateng 2013-07-19 2013 United States 9767 UCSB Gauchos Sweden 699 Helsingborgs IF NaN ? NaN False
293958 279681 Emmanuel Boateng 2009-07-01 2009 Ghana 40902 Right to Dream United States 9767 UCSB Gauchos NaN ? NaN False
294127 201336 Andrea Mancini 2016-03-27 2015 United States 515 Unattached NaN 2440 DC United 75000 - NaN False
294128 201336 Andrea Mancini 2015-07-01 2015 Hungary 649 Szombathely NaN 515 Unattached 75000 - NaN False
294129 201336 Andrea Mancini 2015-01-20 2014 Hungary 515 Unattached NaN 649 Szombathely 100000 - NaN False
294130 201336 Andrea Mancini 2014-10-27 2014 Hungary 709 Budapest Honvéd NaN 515 Unattached 100000 - NaN False
294131 201336 Andrea Mancini 2013-07-01 2013 Spain 7078 Valladolid B Hungary 709 Budapest Honvéd NaN Free transfer 0 False
294132 201336 Andrea Mancini 2012-07-01 2012 England 9265 Man City U21 Spain 7078 Valladolid B NaN Free transfer 0 False
294133 201336 Andrea Mancini 2012-06-30 2011 Italy 5615 Alma Fano England 9265 Man City U21 NaN End of loan 0 True
294134 201336 Andrea Mancini 2012-01-01 2011 England 9265 Man City U21 Italy 5615 Alma Fano NaN Loan 0 False
294135 201336 Andrea Mancini 2011-12-01 2011 England 1078 Oldham Athletic England 9265 Man City U21 NaN End of loan 0 True
294136 201336 Andrea Mancini 2011-11-01 2011 England 9265 Man City U21 England 1078 Oldham Athletic NaN Loan 0 False
294137 201336 Andrea Mancini 2010-11-01 2010 Italy 14848 Bologna England 9265 Man City U21 NaN Free transfer 0 False
294138 201336 Andrea Mancini 2009-07-01 2009 Italy 24432 Inter Youth Italy 14848 Bologna NaN Free transfer 0 False
294139 201336 Andrea Mancini 2009-05-01 2008 Italy 14924 Monza Youth Italy 24432 Inter Youth NaN End of loan 0 True
294140 201336 Andrea Mancini 2008-09-01 2008 Italy 24432 Inter Youth Italy 14924 Monza Youth NaN Loan 0 False

220482 rows × 14 columns


In [123]:
players.columns


Out[123]:
Index([u'2nd club', u'2nd club id', u'Age', u'Complete name',
       u'Contract option', u'Contract there until', u'Contract until',
       u'Country of birth', u'Current club', u'Current club id',
       u'Date of birth', u'Date of last contract extension',
       u'Detailed position', u'Display name', u'Foot', u'Glove', u'Height',
       u'In the team since', u'Intl caps/goals', u'Name in home country',
       u'National team id', u'Nationality', u'Outfitter', u'Place of birth',
       u'Player's agent', u'Player's agent id', u'Position', u'Shoe model',
       u'Shoe size', u'birthDate', u'day of death', u'error', u'facebook',
       u'filename', u'id', u'instagram', u'name', u'on loan from',
       u'on loan from club id', u'twitter', u'website'],
      dtype='object')

In [74]:
players[(pd.isnull(players['Display name']))].groupby('error').count()


Out[74]:
2nd club 2nd club id Age Complete name Contract option Contract there until Contract until Country of birth Current club Current club id ... day of death facebook filename id instagram name on loan from on loan from club id twitter website
error
'NoneType' object has no attribute 'find_all' 0 0 0 0 0 0 0 0 0 0 ... 0 0 80 80 0 79 0 0 0 0

1 rows × 40 columns


In [51]:
transfers


Out[51]:
id playerName date season fromCountry fromTeamId fromTeamName toCountry toTeamId toTeamName mv fee isLoan
0 4096 Jacob Burns 2014-07-01 14/15 Australia 970 Perth Glory NaN 123 End of career 300000 - False
1 4096 Jacob Burns 2009-07-01 09/10 Romania 10442 Unirea Urziceni Australia 970 Perth Glory 400000 Free transfer False
2 4096 Jacob Burns 2008-02-01 07/08 Poland 422 Wisla Kraków Romania 10442 Unirea Urziceni 450000 Free transfer False
3 4096 Jacob Burns 2006-02-01 05/06 England 349 Barnsley FC Poland 422 Wisla Kraków 400000 100 Th. € False
4 4096 Jacob Burns 2004-01-01 03/04 England 515 Unattached NaN 349 Barnsley FC NaN - False
5 4096 Jacob Burns 2003-07-01 03/04 England 399 Leeds NaN 515 Unattached NaN - False
6 4096 Jacob Burns 2000-07-01 00/01 Australia 2500 Parra. Power England 399 Leeds NaN 375 Th. € False
7 4096 Jacob Burns 1999-07-01 99/00 Australia 6045 Sydney United Australia 2500 Parra. Power NaN ? False
8 4097 Kevin Lisbie 2016-01-11 15/16 England 2804 Barnet NaN 515 Unattached 150000 - False
9 4097 Kevin Lisbie 2015-07-01 15/16 England 1150 Leyton Orient England 2804 Barnet 150000 Free transfer False
10 4097 Kevin Lisbie 2015-04-15 14/15 England 3684 Stevenage FC England 1150 Leyton Orient 150000 End of loan True
11 4097 Kevin Lisbie 2015-03-17 14/15 England 1150 Leyton Orient England 3684 Stevenage FC 150000 Loan False
12 4097 Kevin Lisbie 2011-09-01 11/12 England 677 Ipswich England 1150 Leyton Orient 750000 - False
13 4097 Kevin Lisbie 2011-06-30 10/11 England 1028 Millwall England 677 Ipswich 750000 End of loan True
14 4097 Kevin Lisbie 2010-08-01 10/11 England 677 Ipswich England 1028 Millwall 1250000 Loan False
15 4097 Kevin Lisbie 2010-06-30 09/10 England 1060 Colchester Utd. England 677 Ipswich 1250000 End of loan True
16 4097 Kevin Lisbie 2009-08-01 09/10 England 677 Ipswich England 1060 Colchester Utd. 1250000 Loan False
17 4097 Kevin Lisbie 2008-07-01 08/09 England 1060 Colchester Utd. England 677 Ipswich 1250000 750 Th. € False
18 4097 Kevin Lisbie 2007-07-01 07/08 England 358 Charlton England 1060 Colchester Utd. 2000000 Free transfer False
19 4097 Kevin Lisbie 2006-06-30 05/06 England 22 Derby England 358 Charlton 2500000 End of loan True
20 4097 Kevin Lisbie 2006-02-01 05/06 England 358 Charlton England 22 Derby 2500000 Loan False
21 4097 Kevin Lisbie 2005-10-01 05/06 England 1123 Norwich England 358 Charlton 2500000 End of loan True
22 4097 Kevin Lisbie 2005-09-01 05/06 England 358 Charlton England 1123 Norwich 2500000 Loan False
23 4097 Kevin Lisbie 2000-12-31 00/01 England 1039 QPR England 358 Charlton NaN End of loan True
24 4097 Kevin Lisbie 2000-12-01 00/01 England 358 Charlton England 1039 QPR NaN Loan False
25 4097 Kevin Lisbie 1999-12-31 99/00 England 1032 Reading England 358 Charlton NaN End of loan True
26 4097 Kevin Lisbie 1999-11-01 99/00 England 358 Charlton England 1032 Reading NaN Loan False
27 4097 Kevin Lisbie 1999-04-01 98/99 England 2814 Gillingham FC England 358 Charlton NaN End of loan True
28 4097 Kevin Lisbie 1999-03-01 98/99 England 358 Charlton England 2814 Gillingham FC NaN Loan False
29 4097 Kevin Lisbie 1995-07-01 95/96 England 6932 Charlton U18 England 358 Charlton NaN - False
... ... ... ... ... ... ... ... ... ... ... ... ... ...
293976 417389 Rodrigo Saravia 2016-01-14 15/16 United States 38984 Fl Gulf Coast United States 813 Columbus NaN draft False
293977 417390 Ben Polk 2016-01-14 15/16 United States 36097 Syracuse Athl. United States 4291 Timbers NaN draft False
293978 417393 Alex Morrell 2016-01-14 15/16 United States 30846 University of North Florida United States 432 Chicago NaN draft False
293979 417616 Tony Alfaro 2016-01-14 15/16 United States 46852 SCUDH United States 9636 Sounders FC\t NaN draft False
293980 417618 Michael Gamble 2016-01-14 15/16 United States 9783 Demon Deacons United States 626 Revolution NaN draft False
293981 419247 Christian Martínez 2016-12-31 16/17 United States 813 Columbus Panama 18952 Chorrillo FC NaN End of loan True
293982 419247 Christian Martínez 2016-05-17 15/16 Panama 18952 Chorrillo FC United States 813 Columbus NaN Loan False
293983 425006 Colin Bonner 2016-01-19 15/16 United States 39623 UNC Wilmington United States 8816 FC Dallas\t NaN draft False
293984 425266 Matt Pacifici 2016-03-04 15/16 United States 38369 Wildcats United States 813 Columbus NaN Free transfer False
293986 425308 Chris Froschauer 2016-01-19 15/16 United States 9753 Ohio State University United States 1247 Colorado NaN draft False
293987 427612 Femi Hollinger-Janzen 2016-01-19 15/16 United States 9747 Indiana Hoosier United States 626 Revolution NaN draft False
293988 435608 Agustín Jara 2016-05-16 15/16 United States 515 Unattached NaN 8816 FC Dallas\t NaN - False
293989 435608 Agustín Jara 2016-01-01 15/16 Argentina 15944 Colon II NaN 515 Unattached NaN - False
293990 279681 Emmanuel Boateng 2016-01-14 15/16 Sweden 699 Helsingborgs IF United States 1061 Los Angeles 200000 ? False
293991 279681 Emmanuel Boateng 2013-07-19 13/14 United States 9767 UCSB Gauchos Sweden 699 Helsingborgs IF NaN ? False
293992 279681 Emmanuel Boateng 2009-07-01 09/10 Ghana 40902 Right to Dream United States 9767 UCSB Gauchos NaN ? False
294161 201336 Andrea Mancini 2016-03-27 15/16 United States 515 Unattached NaN 2440 DC United 75000 - False
294162 201336 Andrea Mancini 2015-07-01 15/16 Hungary 649 Szombathely NaN 515 Unattached 75000 - False
294163 201336 Andrea Mancini 2015-01-20 14/15 Hungary 515 Unattached NaN 649 Szombathely 100000 - False
294164 201336 Andrea Mancini 2014-10-27 14/15 Hungary 709 Budapest Honvéd NaN 515 Unattached 100000 - False
294165 201336 Andrea Mancini 2013-07-01 13/14 Spain 7078 Valladolid B Hungary 709 Budapest Honvéd NaN Free transfer False
294166 201336 Andrea Mancini 2012-07-01 12/13 England 9265 Man City U21 Spain 7078 Valladolid B NaN Free transfer False
294167 201336 Andrea Mancini 2012-06-30 11/12 Italy 5615 Alma Fano England 9265 Man City U21 NaN End of loan True
294168 201336 Andrea Mancini 2012-01-01 11/12 England 9265 Man City U21 Italy 5615 Alma Fano NaN Loan False
294169 201336 Andrea Mancini 2011-12-01 11/12 England 1078 Oldham Athletic England 9265 Man City U21 NaN End of loan True
294170 201336 Andrea Mancini 2011-11-01 11/12 England 9265 Man City U21 England 1078 Oldham Athletic NaN Loan False
294171 201336 Andrea Mancini 2010-11-01 10/11 Italy 14848 Bologna England 9265 Man City U21 NaN Free transfer False
294172 201336 Andrea Mancini 2009-07-01 09/10 Italy 24432 Inter Youth Italy 14848 Bologna NaN Free transfer False
294173 201336 Andrea Mancini 2009-05-01 08/09 Italy 14924 Monza Youth Italy 24432 Inter Youth NaN End of loan True
294174 201336 Andrea Mancini 2008-09-01 08/09 Italy 24432 Inter Youth Italy 14924 Monza Youth NaN Loan False

220802 rows × 13 columns


In [196]:
t=transfers[['fromTeamId','fromTeamName','id']].drop_duplicates(['fromTeamId','fromTeamName'])
s=t.groupby('fromTeamId').count().sort_values('id')
t[t['fromTeamId'].apply(lambda x:x in s[s['id']>1].index)].sort_values('fromTeamId')


Out[196]:
fromTeamId fromTeamName id
1358 1 Saarbrücken 1529
53962 1 Saarbrücken 17
1077 3 1. FC Köln 2888
54078 3 1. FC Köln 36
560 5 Milan 4291
554 5 AC Milan 4291
1009 13 Atlético Madrid 7979
33481 13 Atlético Madrid 7577
66502 38 F. Düsseldorf 1978
7167 38 F. Düsseldorf 2902
54723 50 LR Ahlen 174
8455 50 Rot Weiss Ahlen 3702
60852 78 VfB Lübeck 1659
53869 78 VfB Lübeck 1
18492 81 VfL Osnabrück 223
59737 81 VfL Osnabrück 1239
66506 91 Preußen Münster 1978
43260 91 Preußen Münster 123
7326 92 SC Fortuna Köln 3474
61699 92 SC Fortuna Köln 6551
56270 95 Bay. Uerdingen 561
12245 95 KFC Uerdingen 1320
3551 99 Chemie Leipzig 1440
55123 99 Sachsen Leipzig 248
55882 108 Wehen Wiesbaden 421
55947 108 SV Wehen 450
68211 111 Rot-Weiß Erfurt 20446
22513 111 Rot-Weiß Erfurt 19857
57216 127 Paderborn 778
20875 127 SC Paderborn 58993
... ... ... ...
16911 36630 HB Zhongji 15832
21054 36630 HB CFFC 36123
163504 36892 VIT/AGOVV U19 30531
155369 36892 Vitesse U21 4512
188125 37139 Marl-Hüls Jgd. 17734
63198 37139 Marl-Hüls Jgd. 18833
87737 37463 Delta Rovigo 35850
106825 37463 D. Porto Tolle 208693
191187 37956 E. Refahiyespor 111546
182107 37956 24 Erzincanspor 35510
187669 39186 Büyükcekmece 68264
65108 39186 Büyükcekmece 17664
182682 39799 Balcova Belediye 126264
180258 39799 Balcova Yasam 17466
184729 42101 Ankaragücü Yth. 57256
176425 42101 Ankaragücü Yth. 6994
186997 43434 Büyüksehir Jgd 70137
194403 43434 Basaksehir Yth. 228945
192922 43875 B. Yesiltepe 213026
191311 43875 Gümüsordu 134520
185481 44069 Istanbul Kulübü 66600
180416 44069 Istanbul Kulübü 34989
182003 44351 Kayseri Jugend 45223
177384 44351 Erciyesspor Jgd 6912
172787 45132 Fenerspor 35068
174793 45132 Zonguldakspor 7202
28086 45691 VIT/AGOVV U19 147034
154216 45691 Vitesse U17 4342
171736 53474 Willem II U17 326330
169044 53474 Willem II/RKC-17 166240

893 rows × 3 columns


In [197]:
t=transfers[['toTeamId','toTeamName','id']].drop_duplicates(['toTeamId','toTeamName'])
s=t.groupby('toTeamId').count().sort_values('id')
t[t['toTeamId'].apply(lambda x:x in s[s['id']>1].index)].sort_values('toTeamId')


Out[197]:
toTeamId toTeamName id
53963 1 Saarbrücken 17
1359 1 Saarbrücken 1529
1078 3 1. FC Köln 2888
54079 3 1. FC Köln 36
559 5 Milan 4291
555 5 AC Milan 4291
1010 13 Atlético Madrid 7979
33482 13 Atlético Madrid 7577
15835 21 Chemnitzer FC 63
55796 21 Karl-Marx-Stadt 406
66503 38 F. Düsseldorf 1978
7168 38 F. Düsseldorf 2902
8456 50 Rot Weiss Ahlen 3702
54724 50 LR Ahlen 174
76011 65 Greuther Fürth 159037
21584 65 Greuther Fürth 32660
60853 78 VfB Lübeck 1659
53870 78 VfB Lübeck 1
59738 81 VfL Osnabrück 1239
18493 81 VfL Osnabrück 223
20066 91 Preußen Münster 32950
66507 91 Preußen Münster 1978
7327 92 SC Fortuna Köln 3474
61700 92 SC Fortuna Köln 6551
12246 95 KFC Uerdingen 1320
54034 95 Bay. Uerdingen 31
3552 99 Chemie Leipzig 1440
55124 99 Sachsen Leipzig 248
55948 108 SV Wehen 450
55883 108 Wehen Wiesbaden 421
... ... ... ...
16912 36630 HB Zhongji 15832
23020 36630 HB CFFC 74297
166262 36892 VIT/AGOVV U19 147480
155370 36892 Vitesse U21 4512
92864 37463 D. Porto Tolle 44665
87738 37463 Delta Rovigo 35850
182497 37956 24 Erzincanspor 33554
182108 37956 E. Refahiyespor 35510
12885 38987 QD Hainiu 32520
47297 38987 QD Huanghai 58532
65109 39186 Büyükcekmece 17664
187670 39186 Büyükcekmece 68264
182683 39799 Balcova Belediye 126264
180259 39799 Balcova Yasam 17466
292646 43556 Ceres–La Salle 79434
73000 43556 Ceres–La Salle 89653
185482 44069 Istanbul Kulübü 66600
180417 44069 Istanbul Kulübü 34989
172930 44254 Aysekadin GB 16711
176044 44254 Edirne Genclik 169817
184320 45463 1926 Bulancak 37105
180324 45463 Bulancak Bld. 44653
157932 45691 Vitesse U17 14863
166571 45691 VIT/AGOVV U19 79027
187301 46677 Ödemisspor 38450
174368 46677 Karsiyaka GB 7131
268873 51571 Solières 45385
156913 51571 Solières 4608
214522 52785 Spartak-Auto 106675
199903 52785 Stolitsa Moskau 38794

838 rows × 3 columns


In [1]:
teams = pd.concat([DataFrame(nonloans[['fromTeamId','fromTeamName','fromCountry']].values,columns=['teamId','teamName','country']),
    DataFrame(nonloans[['toTeamId','toTeamName','toCountry']].values,columns=['teamId','teamName','country'])],ignore_index=True).drop_duplicates('teamId')

teams.groupby('country').count()


---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-1-367f038a71aa> in <module>()
----> 1 teams = pd.concat([DataFrame(nonloans[['fromTeamId','fromTeamName','fromCountry']].values,columns=['teamId','teamName','country']),
      2     DataFrame(nonloans[['toTeamId','toTeamName','toCountry']].values,columns=['teamId','teamName','country'])],ignore_index=True).drop_duplicates('teamId')
      3 
      4 teams.groupby('country').count()[['teamId']]

NameError: name 'pd' is not defined

In [251]:
import math
math.log10(10)


Out[251]:
1.0

In [ ]:
transfers[pd.isnull(transfers['playerName'])]

In [162]:
grouped = transfers.groupby(['id','date'])['playerName'].count()
grouped[grouped==2].count()


Out[162]:
194

In [234]:
int('0' + ''.join([d for d in 'asds121' if d in '1234567890.']))


Out[234]:
121

In [235]:
transfers[['id','fee','playerName']][~((transfers['fee'].str.contains('Th.'))|(transfers['fee'].str.contains('Mill.')))].drop_duplicates(subset='fee')
transfers[['id','fee','playerName']][~((transfers['fee'].str.contains('Th.'))|(transfers['fee'].str.contains('Mill.')))].groupby('fee').count().sort_values('id',ascending=False)

#transfers[['mvfixed','mv']].describe()


Out[235]:
id playerName
fee
Free transfer 58402 58402
- 45428 45428
? 37588 37588
End of loan 29989 29989
Loan 28254 28254
draft 608 608
Swap deal 604 604
gratuito 331 331
trade 226 226
transfervrij 86 86
Libre para traspaso 74 74
Draft 58 58
Bonservissiz 41 41
livre 19 19
Tauschgeschäft 17 17
free transfer 14 14
ablosefrei 13 13
spielertausch 9 9
0 8 8
Trade 7 7
Bez odstępnego 5 5
unbekannt 5 5
ablossefrei 4 4
ablsöefrei 4 4
Free 3 3
ablösfrei 3 3
ablösefrei\t 2 2
bez odstępnego 2 2
abösefrei 2 2
ablösesfrei 2 2
abblösefrei 2 2
Ablösfrei 2 2
Ablösefrei 2 2
?- 2 2
ablöserfei 1 1
albösefrei 1 1
svincolato 1 1
\tablösefrei 1 1
ablose frei 1 1
ablösefrei? 1 1
ablösefrei 1 1
ablösefrei\t 1 1
ablösefre 1 1
ablöseferi 1 1
ablösefei 1 1
ablöefrei 1 1
Vertragsende 1 1
Tausch 1 1
Loan fee: 1 1
Libre 1 1
50000 € 1 1
1500€ 1 1
-i 1 1
-? 1 1
´- 1 1

In [280]:
(transfers.groupby('fromCountry')['id'].nunique() + transfers.groupby('toCountry')['id'].nunique()).sort_values(ascending=False)[:40].index


Out[280]:
England                 11891
France                   7259
Italy                    7191
Germany                  6880
Spain                    6851
Belgium                  6134
Turkey                   5848
Netherlands              5823
Portugal                 5161
Russia                   4208
United States            4060
Brazil                   2840
Greece                   2154
Scotland                 1955
Argentina                1508
Switzerland              1501
Cyprus                   1262
Romania                  1122
Denmark                   950
Sweden                    941
Austria                   909
Norway                    892
Serbia                    889
Ukraine                   864
Poland                    812
Mexico                    763
Bulgaria                  691
Croatia                   655
Israel                    643
China                     634
Hungary                   578
Czech Republic            573
Uruguay                   564
Australia                 532
Japan                     510
Qatar                     484
United Arab Emirates      466
Colombia                  404
Finland                   381
Slovenia                  374
Name: id, dtype: float64

In [115]:
transfers[((transfers['toLeague'] != transfers['fromLeague']))&(transfers['toLeague'] == 'L1')&(transfers['season'] > 2000)].drop_duplicates(subset=['id'],keep='last').groupby('fromLeague')['id'].count().sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[115]:
<matplotlib.axes._subplots.AxesSubplot at 0x12771ecd0>

In [114]:
transfers[((transfers['toLeague'] != transfers['fromLeague']))&(transfers['toLeague'] == 'L1')&(transfers['season'] > 2000)].drop_duplicates(subset=['id'],keep='last').groupby('fromLeague')['id'].count().sort_values(ascending=False).plot.pie(figsize=(6,6))


Out[114]:
<matplotlib.axes._subplots.AxesSubplot at 0x124b1cd90>

In [122]:
transfers[((transfers['toLeague'] != transfers['fromLeague']))&(transfers['toLeague'] == 'L1')&(transfers['season'] > 2000)].drop_duplicates(subset=['id'],keep='last').groupby('fromLeague')['feeValue'].median().sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[122]:
<matplotlib.axes._subplots.AxesSubplot at 0x12840df50>

In [116]:
transfers[((transfers['toLeague'] != transfers['fromLeague']))&(transfers['toLeague'] == 'NL1')&(transfers['season'] > 2000)].drop_duplicates(subset=['id'],keep='last').groupby('fromLeague')['feeValue'].sum().sort_values(ascending=False).plot.pie(figsize=(6,6))


Out[116]:
<matplotlib.axes._subplots.AxesSubplot at 0x117d6db90>

In [124]:
transfers[((transfers['fromLeague'] == 'Other Paraguay'))&(transfers['toLeague'] == 'L1')&(transfers['season'] > 2000)].drop_duplicates(subset=['id'],keep='last').sort_values('feeValue',ascending=False)


Out[124]:
id playerName date season fromCountry fromLeague fromTeamId fromTeamName toCountry toLeague toTeamId toTeamName mv fee feeValue isLoan
64836 28944 Julio dos Santos 2006-01-01 2005 Paraguay Other Paraguay 1214 Cerro Porteño Germany L1 27 Bayern Munich 2000000 2,70 Mill. € 2700000 False

In [126]:
transfers[transfers['id']==28944]


Out[126]:
id playerName date season fromCountry fromLeague fromTeamId fromTeamName toCountry toLeague toTeamId toTeamName mv fee feeValue isLoan
64827 28944 Julio dos Santos 2015-01-01 2014 Paraguay Other Paraguay 1214 Cerro Porteño Brazil BRA1 978 Vasco da Gama 500000 ? NaN False
64828 28944 Julio dos Santos 2009-07-01 2009 Brazil BRA1 679 Atlético-PR Paraguay Other Paraguay 1214 Cerro Porteño 500000 ? NaN False
64829 28944 Julio dos Santos 2008-07-01 2008 Germany L1 27 Bayern Munich Brazil BRA1 679 Atlético-PR 400000 Free transfer 0 False
64830 28944 Julio dos Santos 2008-06-30 2007 Brazil BRA1 210 Grêmio Germany L1 27 Bayern Munich 400000 End of loan 0 True
64831 28944 Julio dos Santos 2008-01-01 2007 Germany L1 27 Bayern Munich Brazil BRA1 210 Grêmio 1000000 Loan 0 True
64832 28944 Julio dos Santos 2007-12-01 2007 Spain ES1 3302 UD Almería Germany L1 27 Bayern Munich 1000000 End of loan 0 True
64833 28944 Julio dos Santos 2007-08-01 2007 Germany L1 27 Bayern Munich Spain ES1 3302 UD Almería 1500000 Loan fee:950 Th. € 950000 False
64834 28944 Julio dos Santos 2007-06-30 2006 Germany L1 82 VfL Wolfsburg Germany L1 27 Bayern Munich 1500000 End of loan 0 True
64835 28944 Julio dos Santos 2007-01-01 2006 Germany L1 27 Bayern Munich Germany L1 82 VfL Wolfsburg 1500000 Loan 0 True
64836 28944 Julio dos Santos 2006-01-01 2005 Paraguay Other Paraguay 1214 Cerro Porteño Germany L1 27 Bayern Munich 2000000 2,70 Mill. € 2700000 False
64837 28944 Julio dos Santos 2000-07-01 2000 Paraguay Other Paraguay 20055 Club Cerro U20 Paraguay Other Paraguay 1214 Cerro Porteño NaN - NaN False

In [240]:
transfers[(transfers['toCountry'] == 'France') & (transfers['date'] >= datetime.date(1980,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop('France').sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[240]:
<matplotlib.axes._subplots.AxesSubplot at 0x13c37ac90>

In [209]:
transfers[(transfers['toCountry'] == 'France') & (transfers['date'] < datetime.date(2010,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop(['France','Monaco']).sort_values(ascending=False).plot.pie(figsize=(6,6))


Out[209]:
<matplotlib.axes._subplots.AxesSubplot at 0x12c08d710>

In [185]:
transfers[(transfers['toCountry'] == 'Portugal') & (transfers['date'] >= datetime.date(1900,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop('Portugal').sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[185]:
<matplotlib.axes._subplots.AxesSubplot at 0x122972790>

In [205]:
transfers[(transfers['toCountry'] == 'Portugal') & (transfers['date'] >= datetime.date(2010,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop('Portugal').sort_values(ascending=False).plot.pie(figsize=(6,6))


Out[205]:
<matplotlib.axes._subplots.AxesSubplot at 0x129161d90>

In [193]:
transfers[(transfers['toCountry'] == 'Germany') & (transfers['date'] < datetime.date(2020,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop('Germany').sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[193]:
<matplotlib.axes._subplots.AxesSubplot at 0x11ddf0e10>

In [202]:
transfers[(transfers['toCountry'] == 'Germany') & (transfers['date'] < datetime.date(2010,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop('Germany').sort_values(ascending=False).plot.pie(figsize=(6,6))


Out[202]:
<matplotlib.axes._subplots.AxesSubplot at 0x12104dad0>

In [197]:
transfers[(transfers['toCountry'] == 'Netherlands') & (transfers['date'] >= datetime.date(2010,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop('Netherlands').sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[197]:
<matplotlib.axes._subplots.AxesSubplot at 0x127b0f250>

In [199]:
transfers[(transfers['toCountry'] == 'Netherlands') & (transfers['date'] < datetime.date(2010,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop('Netherlands').sort_values(ascending=False).plot.pie(figsize=(6,6))


Out[199]:
<matplotlib.axes._subplots.AxesSubplot at 0x12b252f90>

In [268]:
transfers[(transfers['toCountry'] == 'Italy') & (transfers['date'] < datetime.date(2020,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop('Italy').sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[268]:
<matplotlib.axes._subplots.AxesSubplot at 0x12d2d3650>

In [271]:
transfers[(transfers['toCountry'] == 'Italy') & (transfers['date'] < datetime.date(2020,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('fromCountry')['id'].count().drop('Italy').sort_values(ascending=False).plot.pie(figsize=(6,6))


Out[271]:
<matplotlib.axes._subplots.AxesSubplot at 0x12ff670d0>

In [40]:
transfers[(transfers['fromCountry'] == 'Brazil') & (transfers['date'] < datetime.date(2020,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('toCountry')['id'].count().drop('Brazil').sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[40]:
<matplotlib.axes._subplots.AxesSubplot at 0x10a091b10>

In [41]:
transfers[(transfers['fromCountry'] == 'Japan') & (transfers['date'] < datetime.date(2020,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('toCountry')['id'].count().drop('Japan').sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[41]:
<matplotlib.axes._subplots.AxesSubplot at 0x10753d9d0>

In [43]:
transfers[(transfers['fromCountry'] == 'Belgium') & (transfers['date'] < datetime.date(2020,1,1))].drop_duplicates(subset=['id'],keep='last').groupby('toCountry')['id'].count().drop('Belgium').sort_values(ascending=False).plot.bar(figsize=(20,5))


Out[43]:
<matplotlib.axes._subplots.AxesSubplot at 0x10d0f3250>

In [36]:
transfers.groupby('id')['playerName'].count().hist()
transfers.groupby('id')['playerName'].count().describe()


Out[36]:
count    17184.000000
mean         7.156250
std          3.606072
min          1.000000
25%          4.750000
50%          7.000000
75%          9.000000
max         27.000000
Name: playerName, dtype: float64

In [37]:
loans.groupby('id')['playerName'].count().hist()
loans.groupby('id')['playerName'].count().describe()


Out[37]:
count    9352.000000
mean        2.162318
std         1.518207
min         1.000000
25%         1.000000
50%         2.000000
75%         3.000000
max        15.000000
Name: playerName, dtype: float64

In [35]:
transfers['date'][transfers['date']>datetime.date(2002,8,1)].apply(lambda d: d.month).hist()
#.groupby('date').


Out[35]:
<matplotlib.axes._subplots.AxesSubplot at 0x105a93310>

In [214]:
transfers[(transfers['toCountry'] == 'France') &(transfers['fromCountry'] == 'England')].sort_values('date')


Out[214]:
id playerName date season fromCountry fromTeamId fromTeamName toCountry toTeamId toTeamName mv fee
12493 14026 Michael Hughes 1992-07-01 92/93 England 281 Manchester City France 667 R. Strasbourg - 500 Th. €
117497 6979 William Prunier 1996-03-01 95/96 England 985 Manchester Utd. France 40 G. Bordeaux - End of loan
1273 13248 Chris Makin 1996-07-01 96/97 England 1078 Oldham Athletic France 244 Marseille - Free transfer
373 4226 Fabrizio Ravanelli 1997-07-01 97/98 England 641 Middlesbrough France 244 Marseille - 7,40 Mill. €
115113 5316 Sébastien Pérez 1999-01-01 98/99 England 164 Blackburn France 595 SC Bastia - Loan
61818 3574 Valérien Ismaël 1999-01-01 98/99 England 873 Crystal Palace France 826 Lens - 1,80 Mill. €
109722 155753 Jean-Guy Wallemme 1999-01-01 98/99 England 990 Coventry City France 750 FC Sochaux - ?
113475 104068 Mickaël Madar 1999-01-01 98/99 England 29 Everton France 583 Paris SG - ?
5397 4015 Louis Saha 1999-05-31 98/99 England 762 Newcastle France 347 FC Metz - End of loan
111479 5382 Jean-Claude Darcheville 1999-06-30 98/99 England 703 Nottm Forest France 273 Rennes - End of loan
3772 3572 Olivier Dacourt 1999-07-01 99/00 England 29 Everton France 826 Lens - 6,00 Mill. €
32799 7463 Bjørn Tore Kvarme 1999-07-01 99/00 England 31 Liverpool France 618 Saint-Étienne - 1,40 Mill. €
115111 5316 Sébastien Pérez 1999-07-01 99/00 England 164 Blackburn France 244 Marseille - ?
37997 3899 Ibrahima Bakayoko 1999-07-01 99/00 England 29 Everton France 244 Marseille - 6,00 Mill. €
114745 5735 David Terrier 1999-07-01 99/00 England 762 Newcastle France 417 OGC Nice - Free transfer
112537 5571 Kaba Diawara 1999-07-01 99/00 England 11 Arsenal France 244 Marseille - 3,50 Mill. €
12187 5531 Noé Pamarot 2000-05-01 99/00 England 1020 Portsmouth FC France 417 OGC Nice - End of loan
109758 23915 Pape Malick Diop 2000-06-30 99/00 England 1123 Norwich France 667 R. Strasbourg - End of loan
7990 3889 Marc-Vivien Foé † 2000-07-01 00/01 England 379 West Ham France 1041 Olympique Lyon - 9,00 Mill. €
115537 23885 Nassim Akrour 2000-07-01 00/01 England 2796 Woking France 2580 Istres - Free transfer
32553 5493 Esteban Fuertes 2000-07-01 00/01 England 22 Derby France 826 Lens - 6,00 Mill. €
110782 5650 Mikkel Beck 2000-07-01 00/01 England 22 Derby France 1082 LOSC Lille - 350 Th. €
14262 3922 Christian Bassila 2001-01-01 00/01 England 379 West Ham France 273 Rennes - Free transfer
32626 13847 Éric Roy 2001-01-31 00/01 England 289 Sunderland France 1095 Troyes - Free transfer
112534 5571 Kaba Diawara 2001-03-01 00/01 England 164 Blackburn France 583 Paris SG - End of loan
186 4116 Fabrice Fernandes 2001-03-01 00/01 England 931 Fulham FC France 273 Rennes - End of loan
111456 5378 Nicolas Sahnoun 2001-05-01 00/01 England 931 Fulham FC France 40 G. Bordeaux - End of loan
112532 5571 Kaba Diawara 2001-05-01 00/01 England 379 West Ham France 583 Paris SG - End of loan
10630 3965 Didier Domi 2001-07-01 01/02 England 762 Newcastle France 583 Paris SG - 5,58 Mill. €
111111 5314 Frank Leboeuf 2001-07-01 01/02 England 631 Chelsea France 244 Marseille - 1,80 Mill. €
... ... ... ... ... ... ... ... ... ... ... ... ...
28733 87422 Valentin Roberge 2014-09-01 14/15 England 289 Sunderland France 1421 Reims 1,50 Mill. € Loan
28599 60220 Matej Delac 2014-09-01 14/15 England 631 Chelsea France 11300 AC Arles-Avign. 750 Th. € Loan
20236 41242 David N'Gog 2014-09-01 14/15 England 2288 Swansea France 1421 Reims 1,50 Mill. € Free transfer
127647 122797 Andy Delort 2015-02-02 14/15 England 1071 Wigan France 3161 FC Tours 1,75 Mill. € Loan
29884 39152 Falcao 2015-06-30 14/15 England 985 Manchester Utd. France 162 Monaco 45,00 Mill. € End of loan
25091 182579 Karim Rekik 2015-07-01 15/16 England 281 Manchester City France 244 Marseille 4,00 Mill. € 5,00 Mill. €
26244 160080 Yacouba Sylla 2015-07-01 15/16 England 405 Aston Villa France 273 Rennes 1,00 Mill. € 1,50 Mill. €
28097 60603 Kévin Théophile-Catherine 2015-07-01 15/16 England 603 Cardiff France 618 Saint-Étienne 4,00 Mill. € 2,00 Mill. €
127645 122797 Andy Delort 2015-07-02 15/16 England 1071 Wigan France 1162 SM Caen 1,50 Mill. € 2,00 Mill. €
52370 205938 Mario Pasalic 2015-07-03 15/16 England 631 Chelsea France 162 Monaco 4,00 Mill. € Loan
29791 127160 Benjamin Stambouli 2015-07-21 15/16 England 148 Spurs France 583 Paris SG 5,00 Mill. € 8,60 Mill. €
13799 26763 Abou Diaby 2015-07-28 15/16 England 11 Arsenal France 244 Marseille 750 Th. € Free transfer
131196 182893 Seko Fofana 2015-07-30 15/16 England 281 Manchester City France 595 SC Bastia 500 Th. € Loan
29909 45320 Ángel Di María 2015-08-06 15/16 England 985 Manchester Utd. France 583 Paris SG 50,00 Mill. € 63,00 Mill. €
100144 129868 Cristian Battocchio 2015-08-11 15/16 England 1010 Watford France 3911 Stade Brest 29 750 Th. € ?
131123 358985 Yaw Yeboah 2015-08-14 15/16 England 281 Manchester City France 1082 LOSC Lille - Loan
29558 113707 Rémy Cabella 2015-08-19 15/16 England 762 Newcastle France 244 Marseille 9,00 Mill. € Loan
26257 174694 Rony Lopes 2015-08-28 15/16 England 281 Manchester City France 162 Monaco 4,50 Mill. € 12,00 Mill. €
29213 216569 Jeremie Boga 2015-08-31 15/16 England 9250 Chelsea U21 France 273 Rennes - Loan
26102 55709 Emmanuel Mayuka 2015-08-31 15/16 England 180 Southampton France 347 FC Metz 1,50 Mill. € Free transfer
29304 243725 Olivier Kemen 2015-08-31 15/16 England 762 Newcastle France 1041 Olympique Lyon - 700 Th. €
27629 182912 Ange-Freddy Plumain 2015-08-31 15/16 England 931 Fulham FC France 1154 Red Star 93 500 Th. € Loan
124852 66413 Franck Tabanou 2016-01-21 15/16 England 2288 Swansea France 618 Saint-Étienne 6,00 Mill. € Loan
128755 184892 Florian Thauvin 2016-01-31 15/16 England 762 Newcastle France 244 Marseille 14,00 Mill. € Loan
131170 84481 Éder 2016-02-01 15/16 England 2288 Swansea France 1082 LOSC Lille 6,00 Mill. € Loan
21280 35099 Steven Fletcher 2016-02-01 15/16 England 289 Sunderland France 244 Marseille 4,50 Mill. € Loan
26655 27306 Mathieu Debuchy 2016-02-01 15/16 England 11 Arsenal France 40 G. Bordeaux 13,00 Mill. € Loan
128553 111627 Ryan Mendes 2016-06-30 15/16 England 703 Nottm Forest France 1082 LOSC Lille 1,50 Mill. € End of loan
30470 36500 Ola Toivonen 2016-06-30 15/16 England 289 Sunderland France 273 Rennes 3,00 Mill. € End of loan
29882 39152 Falcao 2016-06-30 15/16 England 631 Chelsea France 162 Monaco 23,00 Mill. € End of loan

303 rows × 12 columns


In [122]:
DataFrame(transfers[transfers['toCountry']!=transfers['fromCountry']]).groupby('season')['id'].count().plot.line()


Out[122]:
<matplotlib.axes._subplots.AxesSubplot at 0x1152fff10>

In [123]:
transfers.groupby('Age')['id'].count().plot.line()


Out[123]:
<matplotlib.axes._subplots.AxesSubplot at 0x11b533550>

In [117]:
nonloans[(nonloans['toCountry']!=nonloans['fromCountry'])&(nonloans['fromLeague'].isin(['GB1','ES1','L1','IT1','FR1','NL1','PO1']))] \
    .rename(columns={'Age':'age','fromLeague':'origin'}).groupby(['age','origin'])['id'].count().unstack() \
    .rolling(window=3,center=False).mean().rename(columns={'GB1':'Premier League (England)','FR1':'Ligue 1 (France)','ES1':'La Liga (Spain)','IT1':'Serie A (Italy)','L1':'Bundesliga (Germany)','PO1':'Primeira Liga (Portugal)','NL1':'Eredivisie (Netherlands)'}).plot.line(figsize=(9,6),title='Number of International Transfers, by Age & Origin')


Out[117]:
<matplotlib.axes._subplots.AxesSubplot at 0x11a905d10>

In [103]:
nonloans[(nonloans['toLeague']!=nonloans['fromLeague'])&(nonloans['fromLeague'].isin(['GB1','ES1','L1','IT1','FR1','NL1','PO1']))] \
    .rename(columns={'Age':'age','fromLeague':'origin'}).groupby(['age','origin'])['feeValue'].sum().unstack() \
    .rolling(window=3,center=False).mean().rename(columns={'GB1':'Premier League (England)','FR1':'Ligue 1 (France)','ES1':'La Liga (Spain)','IT1':'Serie A (Italy)','L1':'Bundesliga (Germany)','PO1':'Primeira Liga (Portugal)','NL1':'Eredivisie (Netherlands)'}).plot.line(figsize=(9,6),title='Fees Paid for Inter-League Transfers, by Age & Origin')


Out[103]:
<matplotlib.axes._subplots.AxesSubplot at 0x10beb9710>

In [115]:
nonloans[(nonloans['toCountry']!=nonloans['fromCountry'])&(nonloans['toLeague'].isin(['GB1','ES1','L1','IT1','FR1','NL1','PO1']))] \
    .rename(columns={'Age':'age','toLeague':'destination'}).groupby(['age','destination'])['id'].count().unstack() \
    .rolling(window=3,center=False).mean().rename(columns={'GB1':'Premier League (England)','FR1':'Ligue 1 (France)','ES1':'La Liga (Spain)','IT1':'Serie A (Italy)','L1':'Bundesliga (Germany)','PO1':'Primeira Liga (Portugal)','NL1':'Eredivisie (Netherlands)'}).plot.line(figsize=(9,6),title='Number of International Transfers, by Age & Destination')


Out[115]:
<matplotlib.axes._subplots.AxesSubplot at 0x11a17ac10>

In [71]:
nonloans.groupby(['Age','Position group'])['id'].count().unstack().plot.line(figsize=(10,5))


Out[71]:
<matplotlib.axes._subplots.AxesSubplot at 0x11f0e2fd0>

In [39]:
nonloans.groupby('Age')['feeValue'].sum().plot.bar(figsize=(10,5))


Out[39]:
<matplotlib.axes._subplots.AxesSubplot at 0x110ca6950>

In [54]:
nonloans[nonloans['Age']<15][transfers.columns[:12].tolist()+['Age']]


Out[54]:
id playerName date season fromCountry fromLeague fromTeamId fromTeamName toCountry toLeague toTeamId toTeamName Age
2742 3176 Eidur Gudjohnsen 1993-07-01 1993 Iceland Other Iceland 23656 Valur U19 Iceland IS1 1033 Valur 14
4918 3569 Steed Malbranque 1993-07-01 1993 Belgium Other Belgium 3488 Excelsior Mouscroun U19 France Other France 7813 Olympique Lyon U19 13
6146 3776 Nicolás Medina 1997-01-01 1996 Argentina Other Argentina 15100 Argentinos U20 Argentina AR1N 1030 Argentinos 14
6218 3788 Matthew Etherington 1996-07-01 1996 England Other England 18620 Peterb. U18 England ENSD 1072 Peterborough 14
6671 3875 Jermain Defoe 1997-07-01 1997 England GBJG 6932 Charlton U18 England Other England 358 Charlton 14
10036 3467 Shaun Wright-Phillips 1996-07-01 1996 England GBJG 12799 Not. Forest U18 England GBJG 6930 Man City U18 14
11956 24635 Chris Eagles 2000-07-01 2000 England GBJG 10732 FC Watford U18 England GBJG 5242 Man Utd U18 14
13963 7717 José Antonio Reyes 1998-07-01 1998 Spain Other Spain 28867 Sevilla FC JuvA Spain Other Spain 8519 Sevilla Atl. 14
15571 9915 Reto Ziegler 2000-07-01 2000 Switzerland Other Switzerland 14179 Team Genève U17 Switzerland Other Switzerland 14543 GC Zürich U18 14
18188 2953 Paul Scharner 1994-07-01 1994 Austria Other Austria 20816 St. Pölten Jgd Austria Other Austria 48077 Purgstall Jgd. 14
18189 2953 Paul Scharner 1993-07-07 1993 Austria Other Austria 48077 Purgstall Jgd. Austria Other Austria 20816 St. Pölten Jgd 13
18521 20275 Besian Idrizaj † 2002-07-01 2002 Austria Other Austria 42837 AKA Linz U15 Austria Other Austria 42838 AKA Linz U16 14
18522 20275 Besian Idrizaj † 2001-07-01 2001 Austria Other Austria 33389 Admira Linz Jgd Austria Other Austria 42837 AKA Linz U15 13
18792 24846 Ricardo Batista 2001-07-01 2001 Portugal Other Portugal 48844 Setúbal FC U15 Portugal Other Portugal 48843 Setúbal FC U17 14
19313 1094 Emanuel Pogatetz 1997-07-01 1997 Austria Other Austria 20153 Sturm Jugend Austria Other Austria 4954 Sturm U19 14
20818 37917 Nabil El Zhar 1999-07-01 1999 France Other France 2618 Olympique Alès France Other France 16042 Nîmes 12
21331 4276 Carlos Tévez 1996-07-01 1996 Argentina Other Argentina 19983 All Boys U20 Argentina Other Argentina 15098 Boca U20 12
21616 44790 Georgios Efrem 2004-07-01 2004 Cyprus Other Cyprus 19980 A. Limassol U21 England GBJG 5679 Arsenal U18 14
21622 44792 Kieran Gibbs 2004-07-01 2004 England GBJG 14983 MK Dons U18 England GBJG 5679 Arsenal U18 14
22360 47082 Daniel Sturridge 2003-07-01 2003 England GBJG 12803 Coventry U18 England GBJG 6930 Man City U18 13
22361 47082 Daniel Sturridge 2002-07-01 2002 England GBJG 6933 Aston Villa U18 England GBJG 12803 Coventry U18 12
22614 37393 Paul Anderson 2002-07-01 2002 England GBJG 6951 West Brom U18 England Other England 14482 Hull U19 13
24043 7971 Salomon Kalou 2000-07-01 2000 Cote d'Ivoire Other Cote d'Ivoire 16804 Mimosas U19 Cote d'Ivoire Other Cote d'Ivoire 3891 ASEC Mimosas 14
24250 4489 Khalid Boulahrouz 1995-07-01 1995 Netherlands Other Netherlands 32791 Ajax Youth Netherlands Other Netherlands 15590 Haarlem U19 13
25556 33507 Lukas Jutkiewicz 2002-07-01 2002 England GBJG 6893 Southampton U18 England Other England 15910 Swindon U18 13
26312 9711 Nery Castillo 1999-01-01 1998 Uruguay Other Uruguay 15444 FC Danubio B Uruguay URU1 1306 Danubio FC 14
26494 16922 Kevin-Prince Boateng 1996-07-01 1996 Germany Other Germany 34328 Reinickend. Jgd Germany Other Germany 11844 Hertha BSC Yth. 9
26495 16922 Kevin-Prince Boateng 1995-07-01 1995 Germany Other Germany 11844 Hertha BSC Yth. Germany Other Germany 34328 Reinickend. Jgd 8
26496 16922 Kevin-Prince Boateng 1994-07-01 1994 Germany Other Germany 34328 Reinickend. Jgd Germany Other Germany 11844 Hertha BSC Yth. 7
26659 4176 Valeri Bojinov 1998-07-01 1998 Malta Other Malta 5617 Pietà Hotspurs FC Italy Other Italy 5618 Lecce U20 12
... ... ... ... ... ... ... ... ... ... ... ... ... ...
251835 57520 Romain Elie 2005-07-01 2005 France Other France 1564 FC Rouen France Other France 7882 US Raon-l'Étape 12
251836 57520 Romain Elie 2003-07-01 2003 France Other France 3135 Beauvais France FR2 1564 FC Rouen 10
251837 57520 Romain Elie 2002-07-01 2002 France Other France 19592 Beauvais U19 France FR2 3135 Beauvais 9
252302 61336 Brian Hamalainen 2003-01-01 2002 Denmark Other Denmark 14363 Lyngby BK U19 Denmark Other Denmark 369 Lyngby BK 13
252303 61336 Brian Hamalainen 2002-07-01 2002 Denmark Other Denmark 24811 Alleröd FK U19 Denmark Other Denmark 14363 Lyngby BK U19 13
252409 100986 Thomas Meunier 2006-07-01 2006 Belgium Other Belgium 10459 Standard Youth Belgium Other Belgium 15689 RE Virton U19 14
253432 103600 Vicente Arze 2000-01-01 1999 Bolivia Other Bolivia 8056 Blooming Argentina Other Argentina 15107 Newell's U19 14
254486 122722 Elton Monteiro 2008-07-01 2008 Switzerland Other Switzerland 14211 Sion U18 England GBJG 5679 Arsenal U18 14
255527 226060 Fran Brodic 2011-09-30 2011 Croatia Other Croatia 36356 NK Zagreb Jgd Croatia Other Croatia 36342 Din. Zagreb U17 14
255543 250526 Yan De Maeyer 2007-12-01 2007 Belgium Other Belgium 25005 RSCA Youth Belgium Other Belgium 34284 Mechelen Youth 10
255544 250526 Yan De Maeyer 2005-12-01 2005 Belgium Other Belgium 10473 SK Londerzeel Belgium Other Belgium 25005 RSCA Youth 8
255558 261963 Marin Jakolis 2011-07-01 2011 Croatia Other Croatia 36419 HNK Sibenik Jgd Croatia Other Croatia 36346 HNK Sibenik U17 14
256199 66638 Mario Ticinovic 2006-07-01 2006 Croatia Other Croatia 36360 Hajduk Jgd Croatia Other Croatia 36344 Hajduk U17 14
256200 66638 Mario Ticinovic 2004-07-01 2004 Croatia Other Croatia 36423 Junak Sinj Jgd Croatia Other Croatia 36360 Hajduk Jgd 12
256327 179899 Tomislav Kis 2008-08-18 2008 Croatia Other Croatia 36341 D. Zagreb Jgd. Croatia Other Croatia 41354 C. Sesvete Jgd 14
256328 179899 Tomislav Kis 2005-08-26 2005 Croatia Other Croatia 22559 NK Dubrava Croatia Other Croatia 36341 D. Zagreb Jgd. 11
256386 207877 Ruslan Malinovsky 2006-01-01 2005 NaN NaN 75 Unknown Ukraine Other Ukraine 31606 Shakhtar Donetsk U17 12
256430 238474 Ljuban Crepulja 2008-07-01 2008 Croatia Other Croatia 38731 Segesta Jgd Croatia Other Croatia 38732 Segesta U17 14
257424 142405 Eric Quill 2002-01-01 2001 United States Other United States 646 Tampa Bay United States MLS1 4284 Wizards 14
257425 142405 Eric Quill 1997-01-01 1996 United States Other United States 2934 Clemson Tigers United States MLS1 646 Tampa Bay 9
259233 19430 Hunter Freeman 2000-01-01 1999 United States Other United States 9068 Dallas Texans United States Other United States 9727 IMG Bradenton 14
259534 142532 Guy Melamed 2005-09-01 2005 United States MLS1 1247 Colorado NaN NaN 515 Unattached 12
259535 142532 Guy Melamed 2005-01-01 2004 United States Other United States 23434 Boston College United States MLS1 1247 Colorado 12
260244 50986 Srdjan Djekanovic 1997-07-01 1997 Serbia Other Serbia 3521 FK Zemun Croatia Other Croatia 10317 Zmaj Makarska 14
261843 15414 Ian Joy 1996-07-01 1996 England GB21 9251 Man Utd U21 England ENSD 1074 Tranmere Rovers 14
262931 6144 Ernst Öbster 1998-07-01 1998 Austria Other Austria 20981 Bischofsh. Jgd. Austria Other Austria 42825 AKA Salzb. U15 14
263752 99617 Stefan Frei 2001-01-01 2000 Switzerland Other Switzerland 42251 FC SG Jugend Northern Ireland Other Northern Ireland 38315 De La Salle 14
263869 147289 Omar Jasseh 2007-07-01 2007 England GBJG 6932 Charlton U18 England GBJG 6918 Chelsea U18 14
269095 55748 Thomas Piermayr 2003-07-01 2003 NaN NaN 75 Unknown Austria Other Austria 4420 AKA Linz U18 13
269590 79434 Martin Steuble 2001-07-01 2001 Switzerland Other Switzerland 14543 GC Zürich U18 Switzerland Other Switzerland 14537 FC Zürich U18 13

1210 rows × 13 columns


In [210]:
leagues=['GB1','ES1','L1','IT1','FR1','PO1','NL1','MLS1'] 
#DataFrame(nonloans[(nonloans['toLeague'].isin(leagues))]).groupby(['season','toLeague'])['feeValue'].sum().unstack().plot.line(figsize=(10,10))
DataFrame(nonloans[(nonloans['toLeague']!=nonloans['fromLeague'])&(nonloans['toLeague'].isin(leagues))]).groupby(['season','toLeague'])['feeValue'].sum().unstack().plot.line(figsize=(20,10))
#DataFrame(nonloans[(nonloans['toCountry']!=nonloans['fromCountry'])&(nonloans['toLeague'].isin(leagues))]).groupby(['season','toLeague'])['id'].count().unstack().plot.line(figsize=(10,10))


Out[210]:
<matplotlib.axes._subplots.AxesSubplot at 0x14a22e790>

In [218]:
#DataFrame(nonloans[(nonloans['toLeague'].isin(leagues))]).groupby(['season','toLeague'])['feeValue'].sum().unstack().plot.line(figsize=(10,10))
DataFrame(nonloans[(nonloans['toLeague']!=nonloans['fromLeague'])&(nonloans['toLeague']=='ES1')]).groupby(['season','toTeamName'])['feeValue'].sum().unstack().plot.line(figsize=(20,10))
#DataFrame(nonloans[(nonloans['toCountry']!=nonloans['fromCountry'])&(nonloans['toLeague'].isin(leagues))]).groupby(['season','toLeague'])['id'].count().unstack().plot.line(figsize=(10,10))


Out[218]:
<matplotlib.axes._subplots.AxesSubplot at 0x13ec55110>

In [139]:
t=DataFrame(nonloans[nonloans['toCountry']==nonloans['fromCountry']]['season'])
t["id"]=t.index
t.groupby('season').count().plot.line()
#t.groupby('date').count()[-10:-2].plot.line()


Out[139]:
<matplotlib.axes._subplots.AxesSubplot at 0x1149842d0>

In [138]:
t=DataFrame(loans[loans['toCountry']==loans['fromCountry']]['season'])
t["id"]=t.index
t.groupby('season').count().plot.line()
#t.groupby('date').count()[-10:-2].plot.line()


Out[138]:
<matplotlib.axes._subplots.AxesSubplot at 0x1110b5ad0>