>백엔드 개발 >파이썬 튜토리얼 >A열의 중복 값에 대해 B열에 최대값이 있는 행을 유지하는 방법은 무엇입니까?

A열의 중복 값에 대해 B열에 최대값이 있는 행을 유지하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-07 04:27:02688검색

How to Keep Rows with Maximum Values in Column B for Duplicate Values in Column A?

중복된 ​​열 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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