중복된 열 A 값에 대해 최대 열 B 값이 있는 행 찾기
데이터 분석에서는 중복 레코드를 유지하면서 제거해야 하는 경우가 많습니다. 고유한 데이터. 일반적인 시나리오에는 특정 열(A열)에 중복 값이 있는 데이터 세트가 포함되며, 여기서 목표는 다른 열(B열)에 가장 높은 값을 가진 행을 유지하는 것입니다.
이를 달성하려면 첫 번째 솔루션은 keep="last" 매개변수와 함께 drop_duplicates() 함수를 활용합니다. B열의 값에 관계없이 마지막으로 표시된 행을 유지하면서 A열을 기준으로 중복 행을 삭제합니다.
그러나 B열의 최대값을 가진 행을 유지하는 것이 목표인 경우 위의 솔루션이 적합하지 않습니다. 대신 제공된 두 번째 솔루션과 유사한 groupby() 및 apply() 조합을 사용할 수 있습니다. 이 접근 방식은 행을 A열별로 그룹화하고, 각 그룹에 함수를 적용한 후, 각 그룹 내 B열에서 최대값이 있는 행을 선택합니다.
구현:
import pandas as pd # Create data frame with duplicate values in column A df = pd.DataFrame([[1, 10], [1, 20], [2, 30], [2, 40], [3, 10]], columns=['A', 'B']) # Keep row with maximum value in column B for each duplicate in column A max_b_rows = df.groupby('A', group_keys=False).apply(lambda x: x.loc[x.B.idxmax()]) # Display resulting data frame print(max_b_rows)
출력:
A B A 1 1 20 2 2 40 3 3 10
위 내용은 A열의 중복 값에 대해 B열에 최대값이 있는 행을 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!