그룹별 데이터 및 최대 개수 값이 있는 행 검색
그룹 내에서 최대 개수 값이 있는 행을 확인하려면 그룹별 작업을 사용할 수 있습니다. pandas DataFrame.
다음을 고려하세요. DataFrame:
Sp | Mt | Value | count |
---|---|---|---|
MM1 | S1 | a | 3 |
MM1 | S1 | n | 2 |
MM1 | S3 | cb | 5 |
MM2 | S3 | mk | 8 |
MM2 | S4 | bg | 10 |
MM2 | S4 | dgd | 1 |
MM4 | S2 | rd | 2 |
MM4 | S2 | cb | 2 |
MM4 | S2 | uyi | 7 |
예 1:
우리의 목표는 각 그룹(['Sp', 'Mt']로 정의됨) 내의 행을 식별하는 것입니다. 가장 높은 카운트 값. 예제 1에는 다음과 같은 예상 출력이 있습니다.
Sp | Mt | Value | count |
---|---|---|---|
MM1 | S1 | a | 3 |
MM1 | S3 | cb | 5 |
MM2 | S3 | mk | 8 |
MM2 | S4 | bg | 10 |
MM4 | S2 | uyi | 7 |
이를 달성하려면 먼저 각 그룹의 최대 개수 값을 얻을 수 있습니다.
df.groupby(['Sp', 'Mt'])['count'].max()
이 결과는 다음과 같습니다.
Sp | Mt | |
---|---|---|
MM1 | S1 | 3 |
MM1 | S3 | 5 |
MM2 | S3 | 8 |
MM2 | S4 | 10 |
MM4 | S2 | 7 |
그런 다음 카운트 값이 각 DataFrame의 최대값과 동일한 원본 DataFrame의 인덱스를 추출합니다. group:
idx = df.groupby(['Sp', 'Mt'])['count'].transform(max) == df['count'] df[idx]
원하는 출력을 얻습니다.
예 2:
예 2에서 예상되는 출력은 다음과 같습니다.
Sp | Mt | Value | count |
---|---|---|---|
MM2 | S4 | bg | 10 |
MM4 | S2 | cb | 8 |
MM4 | S2 | uyi | 8 |
이 시나리오에서는 MM4 그룹 내에 최대 개수의 행이 여러 개 있습니다. 값(8). 이전과 동일한 접근 방식을 사용하여 두 행을 모두 얻습니다.
Sp | Mt | Value | count |
---|---|---|---|
MM2 | S4 | bg | 10 |
MM4 | S2 | cb | 8 |
MM4 | S2 | uyi | 8 |
업데이트:
각 그룹 내 최대 개수 값을 나타내는 새 열을 DataFrame에 추가하는 것이 목표인 경우 변환 메서드를 사용하여 각 값을 계산할 수 있습니다. 행:
df.groupby(['Sp', 'Mt'])['count'].max()
이렇게 하면 각각의 최대 개수 값이 포함된 count_max 열을 포함하는 DataFrame이 생성됩니다. 그룹:
Sp | Mt | Value | count | count_max |
---|---|---|---|---|
MM1 | S1 | a | 3 | 3 |
MM1 | S1 | n | 2 | 3 |
MM1 | S3 | cb | 5 | 5 |
MM2 | S3 | mk | 8 | 8 |
MM2 | S4 | bg | 10 | 10 |
MM2 | S4 | dgd | 1 | 10 |
MM4 | S2 | rd | 2 | 7 |
MM4 | S2 | cb | 2 | 7 |
MM4 | S2 | uyi | 7 | 7 |
위 내용은 Pandas의 그룹 내에서 최대 개수 값이 있는 행을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!