2022 K Data 청년 캠퍼스/ML&DL

[Pandas] 데이터 분석을 위한 판다스(1)

flozl 2022. 7. 15. 14:27

Pandas를 배우는 이유

  • 데이터 분석의 80~90%가 데이터 수집과 정리
  • 데이터 정리란 분석이 가능한 형태로 만드는 것
  • 여러가지 유형의 데이터를 공통의 포맷으로 정리
  • 데이터를 수집하고 정리하는데 최적화된 도구

 

Pandas의 자료구조

  • 시리즈(Series) - 1차원의 데이터 구조, 데이터프레임의 열 
  • 데이터프레임(DataFrame) - 2차원의 데이터 구조, 표

 

파이썬을 판다스로 변환 

1. 시리즈로 변환  pandas.Series

index와 value값이 일대응 대응

 

딕셔너리 → 시리즈

import pandas as pd
dic = {'a':1, 'b':2, 'c':3}
sr = pd.Series(dic)

# output
a 1
b 2
c 3
dtype: int64

딕셔너리의 키가 시리즈의 인덱스에 대응, value값은 시리즈의 데이터값으로 변환한다. 

 

 

리스트 → 시리즈

import pandas as pd
list_data = ["빅", "데이터", "분석"]
sr = pd.Series(list_data)
sr

# output
0 빅
1 데이터
2 분석
dtype: object

별도의 인덱스를 정의하지 않으면 자동으로 인덱스가 지정된다. 

 

- index 옵션 추가 

list_data = ["빅", "데이터", "분석"]
sr = pd.Series(list_data, index=["하나", "둘", "셋"])
sr

#output
하나      빅
둘     데이터
셋      분석
dtype: object

- 데이터 추출

dict_data = {"이름": "가나다", "생년월일": 220628, "한국인":True, "안경":False}
sr = pd.Series(dict_data)
print(sr)
print(sr[0])
print(sr['이름'])

#output
이름         가나다
생년월일    220628
한국인       True
안경       False
dtype: object
가나다
가나다
print(sr.index)
print(sr.values)

#output
Index(['이름', '생년월일', '한국인', '안경'], dtype='object')
['가나다' 220628 True False]

 

 

2. 데이터프레임으로 변환  Pandas.DataFrame

여러 개의 시리즈들이 모여서 구성되고 데이터의 열은 시리즈 객체이다.

행 - row, 레코드

열 - column, 속성, 변수 

 

리스트 → 데이터프레임 

리스트는 데이터 프레임의 행으로 변환

df = pd.DataFrame([[18, '남','김천고'], [19, '여', '울산고']],
					index=['진현', '민지'],
					columns=['나이', '성별', '학교'])

# 결과
	나이 성별 학교
진현 18 남 김천고
민지 19 여 울산고

 

딕셔너리 → 데이터프레임 

딕셔너리는 데이터프레임이 열로 변환 

dic = {
	'c0':[1,2,3],
    'c1':[4,5,6],
    'c2':[7,8,9],
    'c3':[10,11,12]
}

df = pd.DataFrame(dic)

# 결과
	c0 c1 c2 c3 
0 	1  4  7  10
1	2  5  8  11 
2	3  6  9  12
df = pd.DataFrame(dict_data, index=['하나', '둘', '셋'])
df

#output
	c0 c1 c2 c3 
하나 	1  4  7  10
둘  	2  5  8  11 
셋	3  6  9  12

 

데이터프레임의 CRUD는 다음 게시글에서 ...