
첫 번째 DataFrame의 정보를 유지하면서 열을 기준으로 DataFrame을 병합하는 방법
겹치지만 동일하지 않은 행이 있는 두 개의 데이터 프레임이 있는 경우 특정 열을 기준으로 두 데이터 프레임을 병합할 수 있습니다. 한 항목에서 다른 항목에 정보를 추가하는 열입니다. 이 경우 df1과 df2라는 두 개의 데이터 프레임을 병합하려고 합니다. 여기서 df1에는 연령에 대한 정보가 포함되고 df2에는 성별에 대한 정보가 포함됩니다. 첫 번째 데이터프레임의 정보를 유지하면서 이를 수행하는 방법은 다음과 같습니다.
해결책
데이터프레임을 병합하고 첫 번째 데이터프레임의 정보를 유지하려면 set_index로 생성된 시리즈와 함께 맵 기능을 사용하세요.
1 | <code class = "python" >df1[ 'Sex' ] = df1[ 'Name' ].map(df2.set_index( 'Name' )[ 'Sex' ])</code>
|
로그인 후 복사
예:
1 2 3 4 5 6 7 8 9 10 | <code class = "python" >df1 = pd.DataFrame({ 'Name' : [ 'Tom' , 'Sara' , 'Eva' , 'Jack' , 'Laura' ],
'Age' : [34, 18, 44, 27, 30],
'Sex' : None})
df2 = pd.DataFrame({ 'Name' : [ 'Tom' , 'Paul' , 'Eva' , 'Jack' , 'Michelle' ],
'Sex' : [ 'M' , 'M' , 'F' , 'M' , 'F' ]})
df1[ 'Sex' ] = df1[ 'Name' ].map(df2.set_index( 'Name' )[ 'Sex' ])
print (df1)</code>
|
로그인 후 복사
출력:
1 2 3 4 5 6 | Name Age Sex
0 Tom 34 M
1 Sara 18 NaN
2 Eva 44 F
3 Jack 27 M
4 Laura 30 NaN
|
로그인 후 복사
로그인 후 복사
대체 솔루션
동일한 결과를 얻는 또 다른 방법은 병합하는 것입니다. 왼쪽 조인을 사용하는 데이터 프레임:
1 | <code class = "python" >df = df1.merge(df2[[ 'Name' , 'Sex' ]], on= 'Name' , how= 'left' )</code>
|
로그인 후 복사
예:
1 2 3 | <code class = "python" >df = df1.merge(df2[[ 'Name' , 'Sex' ]], on= 'Name' , how= 'left' )
print (df)</code>
|
로그인 후 복사
출력:
1 2 3 4 5 6 | Name Age Sex
0 Tom 34 M
1 Sara 18 NaN
2 Eva 44 F
3 Jack 27 M
4 Laura 30 NaN
|
로그인 후 복사
로그인 후 복사
여러 조인 열 처리
여러 열을 병합해야 하는 경우 지정된 추가 조인 열과 동일한 왼쪽 조인 접근 방식을 사용하세요.
1 | <code class = "python" >df = df1.merge(df2[[ 'Name' , 'Sex' , 'Year' , 'Code' ]], on=[ 'Year' , 'Code' ], how= 'left' )</code>
|
로그인 후 복사
오류 처리: 중복 조인 열
중복 조인으로 인해 오류가 발생하는 경우 열이 있는 경우 중복을 제거하거나 매핑을 위해 사전을 사용하여 처리하세요.
위 내용은 첫 번째 DataFrame의 정보를 유지하면서 열을 기반으로 DataFrame을 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!