다음 열 이름을 가진 두 개의 데이터 프레임이 있습니다.
frame_1:
event_id, date, time, county_ID
frame_2:
countyid, state
에 조인 (왼쪽)하여 다음 열이있는 데이터 프레임을 얻고 싶습니다 county_ID = countyid
.
joined_dataframe
event_id, date, time, county, state
조인하려는 열이 인덱스가 아닌 경우 수행 방법을 알 수 없습니다. 가장 쉬운 방법은 무엇입니까? 감사!
답변
다음과 같이 left_on 및 right_on 옵션을 사용할 수 있습니다.
pd.merge(frame_1, frame_2, left_on='county_ID', right_on='countyid')
키가 왼손 데이터 프레임에있는 경우에만 병합 하려는지 질문에서 확실하지 않았습니다. 이 경우 다음이 수행합니다 (위의 방법은 실제로 다 대다 병합을 수행합니다).
pd.merge(frame_1, frame_2, how='left', left_on='county_ID', right_on='countyid')
답변
county_ID
올바른 프레임에 대한 색인 으로 만들어야합니다 .
frame_2.join ( frame_1.set_index( [ 'county_ID' ], verify_integrity=True ),
on=[ 'countyid' ], how='left' )
참고로 pandas에서 오른쪽 프레임의 결합 열에 고유하지 않은 값이있을 때 왼쪽 결합이 끊어집니다. 이 버그를 참조하십시오 .
따라서 가입하기 전에 무결성을 확인해야합니다. , verify_integrity=True