Я пытаюсь воспроизвести результаты, которые используют циклы и numpy векторизация, статья найдена здесь (https://towardsdatascience.com/how-to-make-your-pandas-loop-71-803-times-faster-805030df4f06). Статья не содержит данных или результатов прогона, но я смог найти данные в Интернете. Я хочу воспроизвести результаты для моей собственной работы, но вывод не правильный.
Я включил небольшую часть исходного фрейма данных из статьи и соответствующий код:
import pandas as pd
data = {'HomeTeam':['Burnley','Crystal Palace','Everton','Hull','Man City','Middlesbrough','Southampton',
'Arsenal','Bournemouth','Chelsea','Man United','Burnley','Leicester','Stoke'], 'AwayTeam':['Swansea','West Brom','Tottenham','Leicester','Sunderland','Stoke','Watford','Liverpool','Man United',
'West Ham','Southampton','Liverpool','Arsenal','Man City'], 'FTR': ['A','A','D','H','H','D','D','A','A','H','H','H','D','A']}
leaguedf = pd.DataFrame(data)
def soc_iter(TEAM,home,away,ftr):
leaguedf['Draws'] = 'No_Game'
leaguedf.loc[((home == TEAM) & (ftr == 'D')) | ((away == TEAM) & (ftr == 'D')), 'Draws'] = 'Draw'
leaguedf.loc[((home == TEAM) & (ftr != 'D')) | ((away == TEAM) & (ftr != 'D')), 'Draws'] = 'No_Draw'
leaguedf['Draws']=soc_iter('Arsenal',leaguedf['HomeTeam'].values, leaguedf['AwayTeam'].values, leaguedf['FTR'].values)
leaguedf
Когда я запускаю код, выходной столбец «Dr aws» генерирует только выходные данные «None» вместо «Draw» или «No_Draw».
Что не так с кодом?