일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 데이터과학
- 인공지능
- 데이터구조
- 2
- 자료구조
- 컴퓨터공학
- 소프트웨어
- 빅데이터
- 코딩
- Yes
- 컴퓨터비전
- 사이버보안
- 웹개발
- 머신러닝
- 네트워크보안
- 클라우드컴퓨팅
- 컴퓨터과학
- 소프트웨어공학
- 프로그래밍
- I'm Sorry
- 데이터분석
- 네트워크
- 버전관리
- 파이썬
- 알고리즘
- 데이터베이스
- 보안
- 자바스크립트
- 프로그래밍언어
- 딥러닝
- Today
- Total
스택큐힙리스트
판다스 'count(distinct)'와 같은 기능 본문
나는 여러 개의 데이터베이스 ( 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' 입니다. 이를 사용하여 데이터 분석에서 중요한 중복 처리를 수행할 수 있습니다.