У меня есть два набора данных в одном и том же фрейме данных, каждый из которых показывает список компаний. Один набор данных с 2017 года, а другой с этого года. Я пытаюсь сопоставить два набора данных компании друг с другом, и нечеткое сопоставление (FuzzyWuzzy) было лучшим способом сделать это. Используя частичное соотношение, я хочу просто иметь столбцы со значениями, перечисленными следующим образом: название компании в прошлом году, наивысший коэффициент нечеткого соответствия, компания этого года, связанная с этим наивысшим баллом. Исходному фрейму данных была присвоена переменная «data» с названиями компаний в прошлом году в столбце «Company» и названиями компаний в этом году в столбце «Company name». Чтобы выполнить эту задачу, я попытался создать функцию с процессом нечеткого сопоставления extractOne, а затем применить эту функцию к каждому значению / строке в кадре данных. Затем я бы добавил результаты в исходный фрейм данных.
Вот код ниже:
names_array=[]
ratio_array=[]
def match_names(last_year,this_year):
for row in last_year:
x=process.extractOne(row,this_year)
names_array.append(x[0])
ratio_array.append(x[1])
return names_array,ratio_array
#last year company names dataset
last_year=data['Company'].dropna().values
#this year companydataset
this_year=data['Company name'].values
name_match,ratio_match=match_names(last_year,this_year)
data['this_year']=pd.Series(name_match)
data['match_rating']=pd.Series(ratio_match)
data.to_csv("test.csv")
Однако каждый раз, когда я выполняю эту часть кода, два добавленных столбца, которые я создал, не отображаются в csv. На самом деле «test.csv» - это тот же фрейм данных, что и раньше, несмотря на то, что компьютер показывает его как недавно созданный. Если бы кто-то мог указать на проблему или помочь мне каким-либо образом, это было бы действительно ценно.
Редактировать (просмотр фрейма данных):
Company Company name
0 BODYPHLO SPORTIQUE NaN
1 JOSEPH A PERRY NaN
2 PCH RESORT TENNIS SHOP NaN
3 GREYSTONE GOLF CLUB INC. NaN
4 MUSGROVE COUNTRY CLUB NaN
5 CITY OF PELHAM RACQUET CLUB NaN
6 NORTHRIVER YACHT CLUB NaN
7 LAKE FOREST NaN
8 TNL TENNIS PRO SHOP NaN
9 SOUTHERN ATHLETIC CLUB NaN
10 ORANGE BEACH TENNIS CENTER NaN
Затем, после того как записи Компании (наборы данных компании за прошлый год) заканчиваются, столбец «Название компании» (наборы данных компании за этот год) начинается следующим образом:
4168 NaN LEWIS TENNIS
4169 NaN CHUCKS PRO SHOP AT
4170 NaN CHUCK KINYON
4171 NaN LAKE COUNTRY RACQUET CLUB
4172 NaN SPORTS ACADEMY & RAC CLUB