일치하는 열을 기반으로 누락된 값을 추가하기 위해 DataFrame 병합
주어진 시나리오에서 목표는 두 개의 데이터 프레임 df1과 df1을 병합하는 것입니다. 이름 열을 기반으로 하는 df2. 그러나 원하는 출력은 df1의 정보를 유지하고 df2의 누락된 값을 NaN으로 채우는 것입니다. 결과는 다음과 같습니다.
Name Age Sex 0 Tom 34 M 1 Sara 18 NaN 2 Eva 44 F 3 Jack 27 M 4 Laura 30 NaN
방법 1: Set_index에 의해 생성된 Series별 맵 사용
이 접근 방식에는 Name 열을 설정하여 df2에서 Series를 생성하는 작업이 포함됩니다. 지수로. 그런 다음 map() 메서드를 사용하여 df1의 Sex 값을 일치시키고 채웁니다.
<code class="python">df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex']) print(df1)</code>
방법 2: Left Join을 사용하여 병합하는 대체 솔루션
An 대체 솔루션은 왼쪽 조인 접근 방식을 사용하여 df1과 df2를 병합하는 것입니다. 이렇게 하면 df1의 모든 행이 보존되고 df2의 누락된 값이 NaN으로 채워집니다.
<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left') print(df)</code>
방법 3: 왼쪽 조인과 병합을 사용하여 여러 열로 매핑
병합에 여러 열이 필요한 경우(예: 이름, 연도, 코드) 왼쪽 조인을 사용한 병합을 사용하여 원하는 열을 지정합니다.
<code class="python"># Merge by all columns df = df1.merge(df2, on=['Year', 'Code'], how='left') # Merge by specified columns df = df1.merge(df2[['Year', 'Code', 'Val']], on=['Year', 'Code'], how='left')</code>
중복 키로 오류 처리
경우에 따라 이름 값이 중복되어 오류가 발생할 수 있습니다. 이 문제를 해결하려면 중복 항목을 제거하거나 사전 기반 매핑을 사용하여 마지막으로 일치하는 값이 선택되도록 하는 것이 좋습니다.
<code class="python"># Remove duplicates and create a Series for mapping s = df2.drop_duplicates('Name').set_index('Name')['Val'] df1['New'] = df1['Name'].map(s)</code>
이러한 방법 중 하나를 사용하면 데이터 프레임을 효과적으로 병합하여 기본 프레임의 정보를 보존할 수 있습니다. 데이터프레임을 실행하고 누락된 값을 NaN으로 채웁니다.
위 내용은 일치하는 열을 기반으로 누락된 값을 추가하기 위해 데이터프레임을 병합하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!