AI Big Data/pandas

시리즈 다루기

retro_blue 2020. 7. 8. 17:11
반응형

pandas의 데이터를 구성하는 가장 기본 단위는 시리즈입니다.

데이터프레임을 준비했습니다.

 데이터프레임에서 시리즈를 선택하려면 loc 속성에 인덱스(과일 이름)를 전달하면 됩니다.
 type으로 확인을 해줍니다.

 

자료형이 Series라는 것을 확인할 수 있습니다.

 first_row를 출력해보겠습니다.

 여기서 주목해야 할 점은 데이터프레임을 만들때 price, count 열에 정수형 리스트를 전달해도 시리즈(first_row)를 출력해보면 시리즈의 자로형을 오브젝트로 인식한다는 것입니다.

 

price, count 열의 자료형은 무시되었습니다.

 

1. 시리즈 속성과 메서드 사용하기

 

1-1. index 속성 사용

 - index 속성에는 시리즈의 인덱스가 들어 있습니다.

1-1. index 속성의 첫 번째 값 추출

1-2. values 속성 사용

 - values 속성에는 시리즈의 데이터가 저장되어 있습니다.

1-3. keys 메서드 사용

- keys는 속성 (X), 메서드 (O).

- index와 같은 역할. 동일한 결괏값을 출력합니다.

3-1 keys 메서드의 결괏값을 이용하여 인덱스의 첫 번째 값 추출

 

 

1-4. 시리즈의 기초 통계 메서드 사용하기

- 시리즈를 구성하는 데이터들이 정수일 경우 mean, min, max, std, var와 같은 통계 메서드를 사용할 수 있습니다.

 

 

max : 최댓값

min : 최솟값

std : 표준편차

var : 분산

mean : 평균

 

 

 

 

 

 

 

 

# 시리즈 메서드 정리

 

append :  2개 이상의 시리즈 연결
describe : 요약 통계량 계산
ㆍdrop_duplicates : 중복값이 없는 시리즈 반환
equals : 시리즈에 해당 값을 가진 요소가 있는지 확인
get_values : 시리즈 값 구하기 (values 속성과 동일)
isin : 시리즈에 포함된 값이 있는지 확인
min : 최솟값 반환
max : 최댓값 반환
mean : 산술 평균 반환
median : 중간값 반환
replace : 특정 값을 가진 시리즈 값을 교체
sample : 시리즈에서 임의의 값을 반환
sort_values : 값을 정렬
to_frame : 시리즈를 데이터프레임으로 변환

 

 

2. 시리즈와 불린 (Boolean) 추출 

 

원하는 데이터를 추출할 때 특정 인덱스를 지정하여 추출하곤 합니다.

하지만 보통은 추출한 데이터의 정확한 인덱스를 모르는 경우가 많습니다.

이런 경우, 불린 추출을 통해 특정 조건을 만족하는 값만 추출하는 방법이 있습니다.

 

 

2020.07.07 기준, 한국프로야구의 팀 순위와 득/실점 데이터를 csv로 저장하여 pandas 라이브러를 통해 불러왔습니다.

 

득점의 최고치는 344점, KBO 팀들의 평균 득점은 279.1 입니다. (구단별 현재 진행한 경기 수의 차이는 무시했습니다.)

 

예를 들어, 이번엔 평균 득점치보다 적은 팀들의 데이터를 추출해보도록 하겠습니다.

 

조건에 맞는 5, 7, 8, 9번째 인덱스가 추출되었습니다

 

이렇게 출력되는 원리를 알아볼까요?

5, 7, 8, 9 인덱스의 데이터가 참(True) 이라는 것을 알 수 있습니다

즉, 조건식을 만족한 값 (True) 만 출력이 된 것입니다.

 

리스트 형태로 참과 거짓을 담아 시리즈에 전달하였습니다.

이것을 불린 추출이라고 합니다.

 

 

 

3. 시리즈와 브로드캐스팅

- 브로드캐스팅 (Broadcasting) : 데이터프레임에 있는 모든 데이터에 대해 한 번에 연산하는 것

- 여러 개의 값을 가진 데이터벡터, 단순 크기를 나타내는 데이터스칼라라고 부릅니다.

- 시리즈는 벡터의 한 종류라고 할 수 있습니다.

 

Earn_Score를 es로 바꾼 후 벡터 연산을 실행하였습니다.

같은 길이의 벡터로 더하기 및 곱하기 연산을 수행하였습니다. 결괏값으로 같은 길이의 벡터가 출력되었습니다.

그렇다면 만약 벡터에 스칼라를 연산하면 어떻게 될까요? 

 

벡터의 모든 값에 스칼라를 적용하여 브로드캐스팅 해보겠습니다.

 

이번에는 길이가 서로 다른 벡터를 연산해보겠습니다.

시리즈와 시리즈를 연산하는 경우 같은 인덱스의 값만 계산합니다.

 

데이터의 길이가 4개인 시리즈를 만들어서 es 에 더해보겠습니다.

 

인덱스가 일치한 0~3 인덱스에서는 연산에 성공하여 결괏값을 출력하였습니다.

하지만나머지 인덱스 4~9는 계산을 할 수 없어 누락값(NaN)으로 처리되었습니다.

 

* 벡터의 자료형에 따라 브로드캐스팅 방식이 달라집니다.

 

 

이번엔 sort_index 메서드를 사용하여 인덱스의 역순으로 데이터를 정렬해보도록 하겠습니다.

 

인덱스의 역순으로 데이터를 정렬하였습니다

인덱스 순서대로 정렬된 es와 인덱스의 역순으로 정렬된 rev_es를 연산해보겠습니다.

 

동일한 출력값이 나왔습니다.

왜 동일한 출력값이 나왔을까요? 

es 나 rev_es 는 정렬된 순서는 다를지 몰라도 벡터와 벡터의 연산은 일치하는 인덱스의 값끼리 수행하기 떄문입니다.

 

 


[참고자료]

(Book) Do it! 데이터 분석을 위한 판다스 입문 (Chen. Daniel Y 저) - 이지스퍼블리싱

Do it! 데이터 분석을 위한 판다스 입문
국내도서
저자 : 다니엘 첸(Chen, Daniel Y.) / 김영하역
출판 : 이지스퍼블리싱 2018.10.11
상세보기

(Data) KBO (https://www.koreabaseball.com/TeamRank/TeamRank.aspx)

 

KBO 홈페이지

KBO, 한국야구위원회, 프로야구, KBO 리그, 퓨처스리그, 프로야구순위, 프로야구 일정

www.koreabaseball.com

 

반응형

'AI Big Data > pandas' 카테고리의 다른 글

시리즈와 데이터프레임의 데이터 처리하기  (0) 2020.07.08
데이터프레임 다루기  (0) 2020.07.08
나만의 데이터 만들기  (0) 2020.07.07
기초적인 통계 계산하기  (2) 2020.07.06
데이터 추출하기  (0) 2020.07.06