[python] 열 이름으로 Pandas 데이터 프레임 결합

다음 열 이름을 가진 두 개의 데이터 프레임이 있습니다.

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


답변