pandas 기초 이해
import numpy as np
import pandas as pd
pandas 툴을 불러오는 키워드
판다스(pandas)의 기본 자료구조
판다스는 R을 모티브로하여 만든 파이썬 라이브러리이다.
시리즈(series)는 데이터프레임의 하위 자료형으로, 1개의 열이 시리즈이고 이 시리즈가 다수 모여 데이터프레임을 형성한다고 이해하면 쉽다.
즉, 시리즈는 1개의 열로 각기 index를 가지고 있다.
series 구조 분석
-series에 값을 입력하기
series_data = pd.series(['value1', 'value2'...])
이렇게 하면 1개의 열에 해당 value가 입력되어 시리즈를 형성하게 된다.
여기서 시리즈에 연결되는 index를 만들기 위해서는
series_data
= pd.series(['value1', 'value2'...], index= ['index값',...])
위의 코드를 통해 index명을 입력할 수 가 있다.
-시리즈 인덱싱(값 찾기)
index를 지정하지 않았을 경우는 행의 숫자로 인덱싱이 가능하고,
index를 지정하였을 때는 행의 숫자와 index명을 사용하여 인덱싱이 가능하다.
# index를 출력하지 않고 series값만 출력할 때 / 대괄호가 한번만 있으면 된다.
print(series_data[0])
print(series_data['index1','index2'])
# index명과 series값을 같이 출력할 때1 ( 쉼표를 사용하여 불러올 때 ) / 대괄호 2번 필요
print(series_data[[0,1]])
print(series_data[['index1','index2']])
# index명과 series값을 같이 출력할 때2 ( :콜론을 이용해 불러올 때 ) / 대괄호 1번
print(series_data[0:1]) # 1행의 값이 포함되지 않음
print(series_data['index1':'index4']]) # index4행의 값이 포함됨
데이터 프레임 구조 분석
데이터 프레임은 여러 개의 행, 열로 이루어져 행(index), 열(column)값을 가지게 된다.
- inex, column
index와 column는 name을 가지는 데 해당 값을 변경하고 싶으면 하기의 메소드를 사용하면 된다.
1.
df.index = ['index1', 'index2']
df.columns = ['col1', 'col2']
2. rename함수 사용하기
df.rename(columns={변경 전 열이름, 변경 후 열이름}, inplace=True)
#columns 대신 index를 넣으면 행이름 변경 가능
# inplace = True를 입력하면 원본에 직접 변경 가능
- index,column 삭제
# 한 개의 행,열을 제거할 경우
drop('행 또는 열이름', axis = 0 or 1, inplace =True)
# axis 란 0 일 때는 행에 적용, 1일 때는 열에 적용한다는 의미이다.
# axis는 디폴드값이 0으로 행 삭제시에는 스킵하고 작성 가능
# 한 개 이상의 행,열을 제거할 경우
drop(['행,열이름','행,열이름1'], axis = 0 or 1, inplace =True)
- 데이터프레임 인덱싱(행을 찾자)
#loc는 이름
#iloc는 숫자
1개 선택
df.loc['index1']
df.iloc[0]
각각 선택
df.loc[['index1', 'index2']]
df.iloc[[0, 2]]
범위 선택
df.loc['index1':'index4']
df.iloc[0:3]
-열 찾기
열(column)을 찾는 데에는 따로 함수가 필요하지 않다.
df['열 이름']
df['열 이름1', '열 이름2']
- 한 개의 값 불러오기
1개의 값
df.loc['index','column']
df.iloc[0,2] # 0행 2열 값 불러오기
1개의 행의 여러가지 값
df.loc['index',['col1','col2']] # index행의 col1,col2열 값을 불러오기
df.iloc[0,[2,3]] # 0행의 2,3열 값 불러오기
여러행,여러열의 값
df.loc[['index1','index2']],[['col1','col2']]
df.loc['index1':'index2'],['col1':'col2']
df.iloc[0:2],[2:3]
데이터 타입 확인하기
type(series_data) #해당 입렵값에 type을 알 수 있는 코드
[out put]
<class 'pandas.core.series.Series'> # 1열로 이루어진 series이기에 series라는 값이 나온다.