Это не полное решение, но я думаю, что нашел способ помочь вам добиться некоторого прогресса.
Вот шаги:
- Создайте образец кадра данных, просто дляИллюстрация
Преобразование столбца «HomeTeam» в список… это целевой столбец.
Создать пустой список для хранения результатов поиска «HomeTeam»'column
Перебирать команды в столбце' AwayTeam '
Использовать метод Python list.index (), чтобы получить индекс индексасовпадать… но использовать попытку, за исключением случая, когда вы не найдете совпадения.
Сохранить результат в списке
Когда закончитес помощью цикла for добавьте список в качестве нового столбца в фрейм данных pandas.
import pandas as pd
import numpy as np
# create sample dataframe
df = pd.DataFrame({
'Date': ['2019-08-18', '2019-08-25'],
'HomeTeam': ['Rennes', 'Strasbourg'],
'AwayTeam': ['Paris SG', 'Rennes'],
'home_form': [np.NaN, 1.0],
'away_form': [np.NaN, 3.0],
})
# convert your 'HomeTeam' column into a Python list
list_HomeTeam = list(df['HomeTeam'])
print(list_HomeTeam)
# create an empty list to capture the index position of matches in 'HomeTeam'
list_results_in_home = []
# loop through each team in the 'AwayTeam column'
for each_team in df['AwayTeam']:
# if you find a match in the list, store index as a result
try:
result = list_HomeTeam.index(each_team)
# if you don't find a match, store a string
except:
result = 'team not in list'
# add the result to the list that is capturing the index position in 'HomeTeam'
list_results_in_home.append(result)
print(list_index_home)
# add column to dataframe with the index position
df['index_match_in_HomeTeam'] = list_results_in_home