기관코드와 전체기관명으로 구성된 df1
 
소관기관 컬럼에 전체기관명만 있는 df2

두 개의 데이터 프레임을 합쳐서 하나로 병합하고 싶다면, pd.merge 함수를 쓰면 된다.
하지만, merge 함수 만으로는 경찰관, 교육부가 입력된 셀은 매핑될 수 없다. 
이 문제를 해결하기 위해 아래와 같은 코드를 작성하였다.
# 기관코드 merge
new_df = pd.merge(df2, df1, how="left", left_on="소관기관", right_on="전체기관명")
new_df.replace({np.nan: None}, inplace=True)
# 소관기관이 여러개 인 경우가 있음
for idx, row in new_df.iterrows():
    if row['소관기관'] != None and row['기관코드'] == None:
        org_list = row["소관기관"].split(",")
        tmp_code = []
        for orgName in org_list:
            orgCode = df1[df1['전체기관명'] == orgName]['기관코드'].values[0]
            tmp_code.append(orgCode)
        tmp_code = str(tmp_code).replace('[', '').replace(']', '').replace("'", "").replace(" ","").strip()
        new_df.iloc[idx, new_df.columns.get_loc('기관코드')] = tmp_code
해당 코드의 결과는 아래 데이터 프레임과 같다.
new_df