각기 다른 수의 행을 가진 두 개의 데이터 프레임이 있습니다. 다음은 각 데이터에서 몇 행이데이터 프레임 열에 퍼지 일치를 적용하고 결과를 새 열에 저장합니다.
df1 =
Company City State ZIP
FREDDIE LEES AMERICAN GOURMET SAUCE St. Louis MO 63101
CITYARCHRIVER 2015 FOUNDATION St. Louis MO 63102
GLAXOSMITHKLINE CONSUMER HEALTHCARE St. Louis MO 63102
LACKEY SHEET METAL St. Louis MO 63102
및
df2 =
FDA Company FDA City FDA State FDA ZIP
LACKEY SHEET METAL St. Louis MO 63102
PRIMUS STERILIZER COMPANY LLC Great Bend KS 67530
HELGET GAS PRODUCTS INC Omaha NE 68127
ORTHOQUEST LLC La Vista NE 68128
을 설정이다 나는 combined_data = pandas.concat([df1, df2], axis = 1)
를 사용, 나란히 합류했다. 다음 목표는 df1['Company']
아래의 각 문자열을 df2['FDA Company']
에있는 각 문자열과 fuzzy wuzzy
모듈의 여러 가지 일치하는 명령을 사용하여 비교하고 가장 일치하는 값과 해당 이름을 반환하는 것입니다. 나는 그것을 새로운 칼럼에 저장하고 싶다. 예를 들어 내가 df2['FDA Company']
에 df1['Company']
에 LACKY SHEET METAL
에 fuzz.ratio
및 fuzz.token_sort_ratio
를 한 경우가 가장 일치가 100
의 점수 LACKY SHEET METAL
이었고, 이것은 다음 combined data
에 새 열 아래에 저장 될 수 있음을 반환합니다. 그 결과 내가
combined_data['name_ratio'] = combined_data.apply(lambda x: fuzz.ratio(x['Company'], x['FDA Company']), axis = 1)
을하고 시도
combined_data =
Company City State ZIP FDA Company FDA City FDA State FDA ZIP fuzzy.token_sort_ratio match fuzzy.ratio match
FREDDIE LEES AMERICAN GOURMET SAUCE St. Louis MO 63101 LACKEY SHEET METAL St. Louis MO 63102 LACKEY SHEET METAL 100 LACKEY SHEET METAL 100
CITYARCHRIVER 2015 FOUNDATION St. Louis MO 63102 PRIMUS STERILIZER COMPANY LLC Great Bend KS 67530
GLAXOSMITHKLINE CONSUMER HEALTHCARE St. Louis MO 63102 HELGET GAS PRODUCTS INC Omaha NE 68127
LACKEY SHEET METAL St. Louis MO 63102 ORTHOQUEST LLC La Vista NE 68128
같이 그러나 컬럼의 길이가 다르기 때문에 오류를 가지고있다.
나는 혼란 스럽습니다. 내가 어떻게이 일을 할 수 있니?
의 각 행에 가까운 경기를 잡아! 그러나 큰 파일 (~ lakhs)의 경우 메모리 오류가 발생합니다. – user1930402