본문 바로가기
빅데이터분석

[파이썬] 파이썬 입문 데이터분석 프로젝트 만들기 - (8) 시리즈 Series

by 모닥불🔥 2024. 5. 5.

오늘도 역시 메타코드 강의를 정리할 것이고, 강의자료로는 3-3 내용이다. 강의는 홈페이지에서 구매할 수 있음..!

(사진 누르면 링크 이동)


🔥 강의 목차

오리엔테이션
파이썬 기초 문법
데이터 전처리
데이터 시각화
마케팅 데이터 분석 및 지표 정의하기

🔥 시리즈(series)

테이블을 불러왔을 때 무슨 타입인지 확인하면, 데이터프레임(dataframe)이라고 나온다.

type(iris['A'])

 

금방 이름 변경한 A라는 컬럼 하나를 불러와서, data type이 무엇인지 알아보면 series라고 나온다.

기본적인 집계(min, max, sum, mean), unique, nunique, value_counts, nlargest(), nsmallest() 등을 도출할 수 있다.

1. 기본 집계: min(), max(), sum(), mean()

df_iris['A'].sum() # 876.5
df_iris['A'].min() # 4.3

 

min(), max()는 최대, 최소값을 구하는 함수이다. sum()은 합계, mean()은 평균을 구한다. 데이터프레임명['컬럼명'] 으로 컬럼을 불러온 다음, .sum() 등 집계함수를 붙여 계산할 수 있다.

 

2. 유니크한 값과 개수 구하기: unique(), nunique()

# unique, nunique
df_iris['A'].unique() ## unique한 값
df_iris['A'].nunique() ## unique한 값의 개수

 

unique()를 사용하면 A 컬럼에 있는 모든 행들 중 중복되지 않은 값이 얼마나 있는지 계산해 준다. 예를 들어 '과일'이라는 컬럼에 5개의 행이 있고, 값이 '사과', '배', '딸기', '사과', '딸기' 라면 겹치지 않은 유니크값은 '사과', '배', '딸기' 3종류이다.

따라서 unique() 함수를 사용하면 '사과', '배', '딸기'를 나열해 주고, nunique() 함수를 사용하면 유니크 값의 개수인 3을 출력한다.

 

iris 데이터를 살펴보면 unique한 값은 아래와 같이 나오고, 

이 값들의 개수를 세어보면, 35가 출력된다.

3. value_counts()

value_counts()는 유니크한 값들이 각각 몇 개의 레코드를 가지고 있는지 알려준다. 위에서 들었던 과일 예시를 그대로 들자면, '사과', '배', '딸기', '사과', '딸기' 중에서 '사과'가 몇 개인지, '딸기'가 몇 개인지, '배'가 몇 개인지 나타내 주는 함수이다.

iris 데이터에서는 5.0이라는 숫자가 10번 나왔고, 5.1이라는 숫자가 9번 나왔다. 이처럼 유니크 값이 몇 번 반복되었는지 알 수 있다.

df_iris['A'].value_counts()

만약 여러 개의 컬럼으로 value_counts()를 뽑으면, A와 B를 합친 unique값이 몇개인지 출력한다. 아래 이미지처럼, A가 5.8, B가 2.7인 값이 4개, A가 5.1, B가 3.8인 값이 3개.... 이런 식으로!

df_iris[['A', 'B']].value_counts()

df_iris['A'].value_counts().head().plot(kind='bar')

 

value_counts()로 컬럼의 수를 보여주는 바 그래프를 그리는 데 사용할 수 있다.

4. nlargest(), nsmallest()

nlargest()는 N + largest 의 합성어이므로, 가장 큰 값을 기준으로 정렬하여 N개 추출하는 함수이다.

기본적인 형태는 df.nlargest(n, columns)다.

df_iris.nlargest(10, ['A', 'B'])

 

이런 식으로 쓰면 되는데, 정렬 기준이 될 컬럼이 하나라면 대괄호를 쓰지 않고 df_iris.nlargest(10, 'A')처럼 쓸 수도 있다. 그러면 아래 이미지처럼, 가장 큰 숫자 기준으로 정렬이 후 상위 10개를 출력한다. 조건 컬럼이 A, B 2개이면 A가 동순위일 때 B를 기준으로 정렬한다는 의미이다(A가 7.7일 때 B 순으로 정렬되어 3.8 -> 3.0 -> 2.8 이런 식으로).

 

* 본 게시글은 '메타코드'의 동의를 받아 작성된 글로, 강의 내용에 대한 모든 저작권은 Ringo 선생님에게 있습니다. 개인용도의 학습 외에 무단사용은 엄격히 금지됩니다. 위반 시 법적 조취가 취해질 수 있습니다.