Tôi muốn áp dụng chức năng tùy chỉnh của tôi (nó sử dụng một thang if-else) để sáu cột ( ERI_Hispanic
, ERI_AmerInd_AKNatv
, ERI_Asian
, ERI_Black_Afr.Amer
, ERI_HI_PacIsl
, ERI_White
) trong mỗi hàng của dataframe tôi.
Tôi đã thử các phương pháp khác nhau từ các câu hỏi khác nhưng dường như vẫn không thể tìm thấy câu trả lời đúng cho vấn đề của mình. Điều quan trọng của điều này là nếu người đó được tính là người gốc Tây Ban Nha thì họ không thể được tính là bất cứ ai khác. Ngay cả khi họ có "1" trong một cột dân tộc khác, họ vẫn được tính là người gốc Tây Ban Nha chứ không phải hai hoặc nhiều chủng tộc. Tương tự, nếu tổng của tất cả các cột ERI lớn hơn 1, chúng được tính là hai hoặc nhiều chủng tộc và không thể được tính là một dân tộc duy nhất (ngoại trừ Tây Ban Nha). Hy vọng điều này có ý nghĩa. Chúng tôi rất trân trọng bất kỳ sự giúp đỡ nào.
Nó gần giống như thực hiện một vòng lặp for qua mỗi hàng và nếu mỗi bản ghi đáp ứng một tiêu chí, chúng sẽ được thêm vào một danh sách và loại bỏ khỏi bản gốc.
Từ khung dữ liệu bên dưới, tôi cần tính toán một cột mới dựa trên thông số kỹ thuật sau trong SQL:
========================= CRITERIA ======================== =======
IF [ERI_Hispanic] = 1 THEN RETURN “Hispanic”
ELSE IF SUM([ERI_AmerInd_AKNatv] + [ERI_Asian] + [ERI_Black_Afr.Amer] + [ERI_HI_PacIsl] + [ERI_White]) > 1 THEN RETURN “Two or More”
ELSE IF [ERI_AmerInd_AKNatv] = 1 THEN RETURN “A/I AK Native”
ELSE IF [ERI_Asian] = 1 THEN RETURN “Asian”
ELSE IF [ERI_Black_Afr.Amer] = 1 THEN RETURN “Black/AA”
ELSE IF [ERI_HI_PacIsl] = 1 THEN RETURN “Haw/Pac Isl.”
ELSE IF [ERI_White] = 1 THEN RETURN “White”
Nhận xét: Nếu Cờ ERI cho tiếng Tây Ban Nha là Đúng (1), nhân viên được phân loại là Tiếng Tây Ban Nha
Nhận xét: Nếu có nhiều hơn 1 cờ ERI không phải gốc Tây Ban Nha là đúng, hãy trả lại hai hoặc nhiều hơn nữa
====================== DATAFRAME ===========================
lname fname rno_cd eri_afr_amer eri_asian eri_hawaiian eri_hispanic eri_nat_amer eri_white rno_defined
0 MOST JEFF E 0 0 0 0 0 1 White
1 CRUISE TOM E 0 0 0 1 0 0 White
2 DEPP JOHNNY 0 0 0 0 0 1 Unknown
3 DICAP LEO 0 0 0 0 0 1 Unknown
4 BRANDO MARLON E 0 0 0 0 0 0 White
5 HANKS TOM 0 0 0 0 0 1 Unknown
6 DENIRO ROBERT E 0 1 0 0 0 1 White
7 PACINO AL E 0 0 0 0 0 1 White
8 WILLIAMS ROBIN E 0 0 1 0 0 0 White
9 EASTWOOD CLINT E 0 0 0 0 0 1 White