>백엔드 개발 >파이썬 튜토리얼 >여러 인종 열을 기반으로 Pandas에서 새로운 인종 라벨 열을 만드는 방법은 무엇입니까?

여러 인종 열을 기반으로 Pandas에서 새로운 인종 라벨 열을 만드는 방법은 무엇입니까?

DDD
DDD원래의
2024-12-10 11:33:14728검색

How to Create a New Race Label Column in Pandas Based on Multiple Ethnicity Columns?

Pandas에서 함수를 사용하여 여러 열의 값을 기반으로 새 열 생성

Pandas에서 데이터 프레임으로 작업할 때 다음을 기반으로 새 열을 생성해야 할 수 있습니다. 여러 기존 열의 값. 새 열의 값을 결정하기 위해 행별로 사용자 지정 함수를 열 집합에 적용해야 하는 경우 일반적인 시나리오가 발생합니다.

예시 시나리오

6개의 인종 관련 데이터 프레임을 고려하세요. 표시 열:

df = pd.DataFrame({
    'ERI_Hispanic': [0, 1, 0, 0, 0, 0, 0, 0, 0, 0],
    'ERI_AmerInd_AKNatv': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    'ERI_Asian': [0, 0, 0, 0, 0, 0, 1, 0, 0, 0],
    'ERI_Black_Afr.Amer': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
    'ERI_HI_PacIsl': [0, 0, 0, 0, 0, 0, 0, 1, 0, 0],
    'ERI_White': [1, 0, 1, 1, 0, 1, 1, 1, 1, 1]
})

목표는 다음을 기준으로 각 행을 분류하는 'race_label'이라는 새 열을 만드는 것입니다. 기준:

  1. ERI_Hispanic이 1이면 "Hispanic"을 반환합니다.
  2. 모든 비히스패닉 ERI 열(ERI_AmerInd_AKNatv, ERI_Asian, ERI_Black_Afr.Amer, ERI_HI_PacIsl 및 ERI_White)의 합계인 경우 )가 1보다 크면 반환 "2명 이상".
  3. ERI 열에 0이 아닌 다른 값이 있으면 해당 인종 라벨을 반환합니다(예: "A/I AK 원주민", "아시아인", "흑인/AA", "Haw/Pac Isl." 또는 "White").

해결책

해결책에는 두 단계가 포함됩니다. 분류를 수행하는 사용자 정의 함수를 생성하고 해당 함수를 데이터프레임에 행 단위로 적용합니다.

1. 사용자 정의 함수 정의

def label_race(row):
    if row['ERI_Hispanic'] == 1:
        return 'Hispanic'
    elif row['ERI_AmerInd_AKNatv'] + row['ERI_Asian'] + row['ERI_Black_Afr.Amer'] + row['ERI_HI_PacIsl'] + row['ERI_White'] > 1:
        return 'Two or More'
    elif row['ERI_AmerInd_AKNatv'] == 1:
        return 'A/I AK Native'
    elif row['ERI_Asian'] == 1:
        return 'Asian'
    elif row['ERI_Black_Afr.Amer'] == 1:
        return 'Black/AA'
    elif row['ERI_HI_PacIsl'] == 1:
        return 'Haw/Pac Isl.'
    elif row['ERI_White'] == 1:
        return 'White'
    else:
        return 'Other'

이 함수는 데이터 프레임의 행을 입력으로 사용하고 제공된 기준에 따라 적절한 인종 레이블을 반환합니다.

2. 데이터프레임에 함수 적용

새 'race_label' 열을 생성하려면 축=1 매개변수와 함께 apply() 함수를 사용하여 데이터프레임의 각 행에 label_race 함수를 적용하세요.

df['race_label'] = df.apply(label_race, axis=1)

새 열이 포함된 결과 데이터 프레임이 아래에 표시됩니다.

    ERI_Hispanic  ERI_AmerInd_AKNatv  ERI_Asian  ERI_Black_Afr.Amer  ERI_HI_PacIsl  ERI_White  \
0             0                  0         0                     0             0          1   
1             1                  0         0                     0             0          0   
2             0                  0         0                     0             0          1   
3             0                  0         0                     0             0          1   
4             0                  0         0                     0             0          0   
5             0                  0         0                     0             0          1   
6             0                  0         1                     0             0          1   
7             0                  0         0                     0             1          1   
8             0                  0         0                     1             0          0   
9             0                  0         0                     0             0          1   

     race_label  
0         White  
1      Hispanic  
2         White  
3         White  
4         Other  
5         White  
6   Two or More  
7         White  
8  Haw/Pac Isl.  
9         White  

위 내용은 여러 인종 열을 기반으로 Pandas에서 새로운 인종 라벨 열을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.