스택큐힙리스트

판다스 'count(distinct)'와 같은 기능 본문

카테고리 없음

판다스 'count(distinct)'와 같은 기능

스택큐힙리스트 2023. 4. 15. 05:00
반응형

나는 여러 개의 데이터베이스 ( Oracle , SQL Server , 등)를 가지고 있기 때문에 SQL과 동등한 명령어 시퀀스를 만들 수 없어 Pandas를 데이터베이스 대신 사용하고 있습니다.

저는 몇 개의 열이 있는 DataFrame에 로드된 테이블을 가지고 있습니다.

YEARMONTH, CLIENTCODE, SIZE, etc., etc.

SQL에서는 연도별로 다른 고객의 수를 계산하는 것이다.

SELECT count(distinct CLIENTCODE) FROM table GROUP BY YEARMONTH;

그 결과는 될 것입니다.

201301 5000

201302 13245

판다스에서 그걸 어떻게 할 수 있나요?

답변 1

나는 이게 당신이 원하는 것이라고 믿어요.

table.groupby('YEARMONTH').CLIENTCODE.nunique()

Hello - 안녕하세요

In [2]: table

Out[2]:

CLIENTCODE YEARMONTH

0 1 201301

1 1 201301

2 2 201301

3 1 201302

4 2 201302

5 2 201302

6 3 201302

In [3]: table.groupby('YEARMONTH').CLIENTCODE.nunique()

Out[3]:

YEARMONTH

201301 2

201302 3

답변 2

판다스 'count(distinct)'와 같은 기능을 하는 함수

데이터 분석에서 중복값 처리는 매우 중요합니다. 이를 처리하기 위해 사용되는 함수 중 하나는 'count(distinct)'입니다. 이 함수는 각 열에서 고유한 값을 찾아 그 개수를 세는 기능을 합니다.

하지만 판다스에서는 해당 함수를 직접적으로 제공하지 않습니다. 대신 'nunique' 라는 함수를 사용하여 고유한 값의 개수를 계산할 수 있습니다. 이 함수는 데이터프레임의 각 열에서 고유한 값의 개수를 계산하며, 이를 구하는 동시에 NaN 값을 제외할지 여부를 선택할 수 있습니다.

예를 들어, 아래와 같은 데이터프레임이 있다고 가정해보겠습니다.

| 이름 | 성별 | 나이 |

|-----|-----|-----|

| John | M | 24 |

| Jane | F | 28 |

| John | M | 24 |

| Alex | M | 26 |

해당 데이터프레임에서 '이름' 열의 고유한 값의 개수를 세는 경우 'nunique' 함수를 사용하면 다음과 같이 계산됩니다.

```python

df['이름'].nunique() # 결과: 3

```

즉, '이름' 열에서 고유한 값은 'John', 'Jane', 'Alex'로 총 3개임을 확인할 수 있습니다.

따라서 판다스에서 'count(distinct)'와 같은 기능을 수행하는 함수는 'nunique' 입니다. 이를 사용하여 데이터 분석에서 중요한 중복 처리를 수행할 수 있습니다.

반응형
Comments