[파이썬 판다스] 빈도수, 포함관계, 유일값

이현지·2024년 5월 22일

파이썬

목록 보기
7/21

시리즈 만들기

시리즈에서 값에 대한 정보를 추출하는 메소드들에 대해서 살펴보자.

다음과 같은 시리즈를 만들자.

시 = pd.Series(['ㄱ', 'ㄴ', 'ㄹ', 'ㄱ', 'ㄴ', 'ㄹ', 'ㄴ', 'ㄷ'])

시리즈 값들 중 유일한 값들을 unique 메소드를 이용해서 찾아내자.

유일 = 시.unique()
유일
array(['ㄱ', 'ㄴ', 'ㄹ', 'ㄷ'], dtype=object)

빈도수 찾기

value_counts 메소드를 이용해 값들에 대한 빈도수를 찾을 수 있다.

시.value_counts()
ㄴ    3
ㄹ    2
ㄱ    2
ㄷ    1
dtype: int64

판다스 함수를 이용해서도 빈도수를 구할 수 있다.

pd.value_counts(시, sort=False)
ㄱ    2
ㄹ    2
ㄷ    1
ㄴ    3
dtype: int64

시리즈 또는 데이터프레임 열에 속했는지 판단하기: isin 메소드

isin 메소드를 이용해
값들이 시리즈 또는 데이터프레임의 열에 속했는지를 판단해 논리형 배열로 반환한다.

시리즈

거름 = 시.isin(['ㄱ', 'ㄴ'])
거름
0     True
1     True
2    False
3     True
4     True
5    False
6     True
7    False
dtype: bool
시[거름]
0    ㄱ
1    ㄴ
3    ㄱ
4    ㄴ
6    ㄴ
dtype: object

포함관계, 유일값, 빈도수 메소드

isin : 전달된 값의 시퀀스에 각 시리즈 값이 포함되어 있는지 여부를 나타내는 bool 배열 계산

match : 고유한 값 배열의 각 값에 대한 정수 인덱스 를 계산하여 데이터 정렬 및 join 유형의 작업에 유용함

unique : 시리즈에서 관찰된 순서대로 고유한 값의 배열을 계산

value_counts: 고유한 값을 인덱스로, 빈도를 값으로 포함하는 시리즈를 반환하며, 빈도 순으로 내림차순으로 정렬됨

데이터프레임

데이터프레임 열에 대한 빈도수를 다음과 같이 계산한다.

데 = pd.DataFrame({'가': ['a', 'c', 'd', 'c', 'd'],
                  '나': ['b', 'c', 'a', 'b', 'c'],
                  '다': ['a', 'e', 'b', 'd', 'e']})
데
	가	나	다
0	a	b	a
1	c	c	e
2	d	a	b
3	c	b	d
4	d	c	e

빈도수를 측정할 때 결측치는 0 으로 채운다.
데.apply(pd.value_counts).fillna(0) 를 적용한다.

데.apply(pd.value_counts).fillna(0)
	가	나	다
a	1.0	1.0	1.0
b	0.0	2.0	1.0
c	2.0	2.0	0.0
d	2.0	0.0	1.0
e	0.0	0.0	2.0

데이터프레임 열에 a가 1개,b는 0개 c는 2개, …등을 의미한다.

빈도수 코드 설명

pd.value_counts: 각 열의 고유한 값에 대한 빈도를 계산한다.

apply(pd.value_counts): 데이터프레임 데의 각 열에 대해 value_counts 함수를 적용하여,
각 값이 해당 열에서 몇 번 나타나는지 계산한다.

fillna(0): 계산된 빈도 데이터프레임에서 값이 존재하지 않는(빈도수가 없는) 위치를 0으로 채운다.

profile
관심분야: 추천시스템, 자연어처리, 머신러닝, 딥러닝

0개의 댓글