Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 파이썬웹개발
- langchain
- 비지도학습
- programmablesearchengine
- fastapi #python웹개발
- chatGPT
- 딥러닝
- 챗gpt
- konlpy
- 파이토치
- 자연어분석
- 머신러닝
- pytorch
- Python
- 판다스 데이터정렬
- MachineLearning
- NLP
- sklearn
- fastapi #파이썬웹개발
- 판다스
- 파이토치기본
- 파이썬
- 랭체인
- pandas
- deeplearning
- python 정렬
- HTML
- 사이킷런
- fastapi
- OpenAIAPI
Archives
- Today
- Total
Data Navigator
[pandas] Series 데이터 정렬하기 sort_values(), .value_counts(), .unique() 본문
Python/Pandas
[pandas] Series 데이터 정렬하기 sort_values(), .value_counts(), .unique()
코딩하고분석하는돌스 2021. 4. 12. 08:52
pandas Series 정렬 sort_values(), value_counts, unique¶
sort_values() 사용¶
- ascending: 오름차순으로 정렬
- key: 정렬 기준 함수(주로 lambda 함수 사용)
- na_position: 결측이 있는 경우 어디에 배치할 것인지 결정 {first, last}
In [1]:
import pandas as pd
import numpy as np
In [2]:
S = pd.Series(np.random.randint(1,10,100)) #1과 10 사이의 숫자를 100개 생성
S.iloc[0:3] = np.nan # 0부터 3까지 결측치로 변환
S.head(10)
Out[2]:
0 NaN
1 NaN
2 NaN
3 2.0
4 7.0
5 6.0
6 9.0
7 7.0
8 4.0
9 7.0
dtype: float64
In [3]:
# sort_values()를 사용한 Series 내림차순 정렬
S.sort_values() # default: ascending = True, key = None, na_position = last
Out[3]:
14 1.0
32 1.0
35 1.0
20 1.0
48 1.0
...
6 9.0
45 9.0
0 NaN
1 NaN
2 NaN
Length: 100, dtype: float64
In [4]:
# sort_values()를 사용한 Series 오름차순 정렬, nan 값도 제일 앞으로 정렬
S.sort_values(ascending = False, key = None, na_position = 'first')
Out[4]:
0 NaN
1 NaN
2 NaN
36 9.0
23 9.0
...
35 1.0
86 1.0
48 1.0
80 1.0
32 1.0
Length: 100, dtype: float64
In [ ]:
Series 요약 함수 value_counts, unique¶
value_counts : Series의 구성 요소를 빈도 순서대로 출력 (결측값 포함X)¶
- ascending: 오름차순으로 정렬
- normalize: 빈도 대신 비율을 출력
unique : Series에 있는 고유 값을 출력 (결측값 포함)¶
- 출력 값의 데이터 타입: ndarray
- 범주형 변수와 연속형 변수를 판단하는데 사용 가능(unique 값의 길이 측정 후 판단)
In [9]:
# value_counts() 범주형 변수에 사용, 기본 내림차순
S.value_counts()
Out[9]:
2.0 15
9.0 14
1.0 13
6.0 13
3.0 12
7.0 11
4.0 8
8.0 7
5.0 4
dtype: int64
In [10]:
# value_counts(normalize=True) 빈도가 아닌 비율을 보여줌
S.value_counts(normalize=True)
Out[10]:
2.0 0.154639
9.0 0.144330
1.0 0.134021
6.0 0.134021
3.0 0.123711
7.0 0.113402
4.0 0.082474
8.0 0.072165
5.0 0.041237
dtype: float64
In [11]:
# value_counts(normalize=True, ascending=True) 비율을 오름차순으로 정렬
S.value_counts(normalize=True, ascending=True)
Out[11]:
5.0 0.041237
8.0 0.072165
4.0 0.082474
7.0 0.113402
3.0 0.123711
1.0 0.134021
6.0 0.134021
9.0 0.144330
2.0 0.154639
dtype: float64
In [12]:
S.unique()
Out[12]:
array([nan, 2., 7., 6., 9., 4., 5., 1., 8., 3.])
In [14]:
# unique 값의 길이를 측정했을 때 고유값이 10개이므로 연속형이 아닌 범주형 데이터임을 알 수 있음
len(S.unique())
Out[14]:
10
In [ ]:
In [ ]:
In [ ]:
'Python > Pandas' 카테고리의 다른 글
[pandas] DaraFrame의 중복 제거 .drop_duplicates (0) | 2021.04.14 |
---|---|
[pandas] 판다스 DataFrame정렬 sort_values() (0) | 2021.04.13 |
[pandas] groupby를 이용한 조건부 통계 (0) | 2021.04.10 |
[pandas] pivot_table을 이용한 조건별 변수별 통계량 파악 (0) | 2021.04.09 |
[pandas] concat, os.listdir, openpyxl을 이용한 데이터 통합 (0) | 2021.04.08 |