Python

[SK T Academy] Pandas 기본기 다지기 : Series, DataFrame

Tech Signal 2020. 12. 17. 15:24

 

tacademy.skplanet.com/live/player/onlineLectureDetail.action?seq=180

import pandas as pd

df = pd.read_csv('/input/seasons.csv')		# seasons.csv
df = df.fillna('')							# NaN인 것 공백 처리
nature = df.query('season != ""')			# season이 공백이 아닌 것을 nature 가져옴



for checkWord in nature.season: 			# 가져온 테이블에서 season 요소 중에 checkWord가 있을
	return checkWord						# 해당 checkWord를 반환한다
    

pd.뫄뫄.values = Numpy를 사용하게 됨. 즉 Pandas가 Numpy의 기능을 포함

 

Pandas는 인덱스 이름 뭐로할지 지정 가능

Pandas의 Series(1차원)은 index와 value를 가진다

Series를 만든다. index도 지정해줄 수 있다. 
index 또는 순서로 검색 가능하다

height_dict = {'mom': 160, 'dad': 170, 
			   'me': 165, 'sister': 155}   # 가족들의 키를 담은 딕셔너리

heights = pd.Series(height_dict)  		   # 딕셔너리를 Series로 바로 만들 수있음

heights * 1000 							   # 모든 값에 1000을 곱해줌

딕셔너리는 순서가 없고 판다스의 Series는 순서가 있어서 숫자 인덱스로 조회 가능

딕셔너리dictionary 를 Series로 만들 수 있다


DataFrame: 2차원 데이터, 엑셀 스프레드시트 같은 구조 ( Series가 합쳐져있다고 생각하면 됨)

pd.DataFrame()

1번: 리스트 3개가 모여 DataFrame이 되었다. 컬럼명은 DataFrame 만들때 같이 명시해주었음

2번: dictionary 타입으로 컬럼명을 맨 앞에 두고 해당 컬럼에 속할 것들을 넣어줌 

index를 DataFrame에 적용까지~

type(df['영화 제목'])  # 데이터프레임의 해당 컬럼 타입?: Series
type(df)			   # 데이터프레임 그 자체: DataFrame

 

DataFrame 속성

df.index	# 내가 지정한 인덱스 설명
df.columns	# 컬럼들
df.dtypes	# 문자열을 String이 아니라 Object로 다룸
df.values  	# 값들

특정 컬럼을 index로 지정한 경우. 이게 더 효율적일 수도 있다.

s_1 = pd.Series([1, 2, 3, 4], index=['A', 'B', 'C', 'D'])
s_2 = pd.Series([5, 6, 7, 8], index=['A', 'B', 'C', 'D'])
s_3 = pd.Series([9, 10, 11, 12], index=['A', 'B', 'C', 'D'])

data = {'col1': s_1,  # key값과 value로 미리 만들어둔 Series를 넣는다. 
        'col2': s_2,
        'col3': s_3}

df_4 = pd.DataFrame(data, index=['A', 'B', 'C', 'D'])

df_4

 

NumPy ndarray와 비교

- Series 에서 series*100 이런 식으로 해서 모든 요소 연산 가능 

- NumPy는 인덱스를 지정할 수 없어서 DataFrame의 크기만 같으면 연산 가능