>백엔드 개발 >파이썬 튜토리얼 >Pandas를 사용하여 그룹의 고유 값을 계산하는 방법은 무엇입니까?

Pandas를 사용하여 그룹의 고유 값을 계산하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-18 15:52:03262검색

How to Count Unique Values in Groups with Pandas?

Pandas가 포함된 그룹의 고유 값 계산

범주로 그룹화된 여러 변수가 포함된 데이터 세트로 작업할 때 숫자를 결정해야 하는 경우가 많습니다. 각 그룹과 연관된 고유 값. 데이터 조작을 위해 널리 사용되는 Python 라이브러리인 Pandas는 그룹 내의 고유 값을 계산하는 여러 가지 방법을 제공합니다.

일반적인 요구 사항 중 하나는 각 도메인 내의 고유 식별자 수를 계산하는 것입니다. ID와 도메인에 대한 열이 포함된 데이터 프레임이 주어지면 각 도메인의 고유 ID 개수를 표시하는 결과를 얻으려고 합니다.

구체적으로 데이터를 고려하면

      ID   domain
0    123   vk.com
1    123   vk.com
2    123  twitter.com
3    456   vk.com
4    456  facebook.com
5    456   vk.com
6    456   google.com
7    789  twitter.com
8    789   vk.com

우리는 다음 출력을 달성하는 것을 목표로 합니다.

domain  count
vk.com       3
twitter.com   2
facebook.com  1
google.com    1

이를 달성하려면 Pandas groupby 작업 내에서 nunique() 함수를 사용할 수 있습니다. 도메인 열을 기준으로 데이터 프레임을 그룹화한 후 nunique() 함수를 ID 열에 적용하여 각 도메인의 고유 값 개수를 얻습니다. 결과 데이터 프레임에는 원하는 결과가 포함됩니다.

df = df.groupby(['domain', 'ID']).nunique()

print(df)

그러나 특정 시나리오에서는 데이터의 도메인 이름 내에 작은따옴표와 같은 문자가 포함될 수 있습니다. 이러한 경우를 처리하려면 그룹화하고 계산하기 전에 str.strip("'") 함수를 사용하여 작은따옴표를 제거할 수 있습니다. 이는 다음과 같이 구현할 수 있습니다:

df = df.ID.groupby([df.domain.str.strip("'")]).nunique()

print(df)

또는 groupby 작업 내에서 str.strip("'") 함수를 연결하여 코드를 단순화할 수 있습니다.

df.groupby(df.domain.str.strip("'"))['ID'].nunique()

결과 데이터 프레임의 도메인 열을 확인하려면 as_index=False 매개변수와 함께 agg() 함수를 사용할 수 있습니다.

df = df.groupby(by='domain', as_index=False).agg({'ID': pd.Series.nunique})

print(df)

이 메서드는 도메인 및 개수 열이 모두 포함된 데이터 프레임을 반환합니다. 각 도메인과 연관된 고유 ID의 수를 나타냅니다.

위 내용은 Pandas를 사용하여 그룹의 고유 값을 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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