본문 바로가기
Python/라이브러리

Pandas 기초 익히기

by 지식광부키우기 2019. 9. 16.

아래의 모든 내용은 파이썬으로 데이터 주무르기(저자 민형기)의 예시를 사용했습니다.

 

모듈 불러오기 

# 모듈 불러오기
import pandas as pd
import numpy as np

 

▶ Series 데이터 유형 

# Series는 pandas의 데이터 유형 중 하나 
# 대괄호로 만드는 파이썬의 list데이터로 만드는 것이 가능함
# 중간에 NaN도 넣어줌 
s = pd.Series([1,3,5,np.nan,6,8])
s

<결과1>

 

▶ date_range 데이터 유형 

# 날짜형 데이터인 date_range
# 기본 날짜를 지정하고 periods 옵션으로 6일간이라고 지정
dates = pd.date_range('20130101', periods=6)
dates

<결과2>

 

▶ DataFrame 데이터 유형

# 6행 4열의 랜덤 변수를 생성한다
# 컬럼에는 A,B,C,D를 지정한다
# 행의 인덱스는 위에서 만든 dates를 사용한다
df = pd.DataFrame(np.random.randn(6,4), index=dates, 
                  columns=['A','B','C','D'])
df

<결과3>

 

▶ head()

# head() 명령은 기본적으로 첫 5행을 보여준다. 
df.head()

<결과4>

 

▶ head(3)

# head() 괄호안에 숫자를 넣으면 그 숫자만큼의 행을 볼 수 있다.
df.head(3)

<결과5>

 

▶ DataFrame의 index

# pandas의 DataFrame의 인덱스 확인
df.index

<결과6>

 

▶ DataFrame의 columns

# pandas의 DataFrame의 컬럼
df.columns

<결과7>

 

▶ DataFrame의 내용 확인하기, values

# DataFrame의 내용확인하기
df.values

<결과8>

 

▶ DataFrame의 개요, info()

# DataFrame의 개요 
df.info()

<결과9>

 

▶ 통계적 개요, describe

# count, mean, min, max, quarter, sd
df.describe()

<결과10>

 

▶ 정렬, sort_values

# 열의 B를 기준, 내림차순으로 정렬
# 기준은 명령 by로, ascending은 올림차순, 내림차순 결정!
df.sort_values(by='B', ascending=False)

<결과11>

 

▶ 변수명 입력

# 변수명만 입력하면 전체 내용이 나타난다.
df

<결과12>

 

▶ 단순 변수명, 칼럼 기준

# 해당 컬럼만 Series로 보여준다.
df['A']

<결과13>

 

▶ 행의 중간만 보기 

# 행의 범위만 지정
df[0:3] # 0, 1, 2행까지의 결과를 보여준다

<결과14>

 

▶ 행 명을 이용해서 보기 

# 행의 이름을 직접 입력
df['20130102':'20130104']

<결과15>

 

▶ 슬라이싱, location 옵션을 이용해 위치 값 지정

# loc를 이용하여 위치값을 지정
# 1행의 결과를 보여준다
df.loc[dates[0]]

<결과16>

 

▶ 특정 열의 모든 행 보기 

# A와 B열의 모든 행 보기
df.loc[:,['A','B']]

<결과17>

 

▶ 여러 특정 행과 특정 열 보기

# 2013년 1월 2일부터 2013년 1월 4일까지 데이터 중 A와 B열의 데이터만 선택 
df.loc['20130102':'20130104',['A','B']]

<결과18>

 

▶ 하나의 특정 행의 여러 열 보기

# 2013년 1월 2일의 A,B 열의 내용을 확인
df.loc['20130102',['A','B']]

<결과19>

 

▶ 행의 index를 이용 특정 열 확인 

# 2013년 1월 1일, A 열의 데이터만 확인
df.loc[dates[0],'A']

<결과20>

 

▶ 행과 열의 번호를 이용해서 데이터에 바로 접근 iloc

# 3행에 바로 접근
df.iloc[3]

<결과21>

 

▶ 행과 열에 바로 접근

# 3행부터 4행까지, 0열부터 1열까지
df.iloc[3:5,0:2]

<결과22>

 

▶ 범위가 아니라 콤마로 지정하기

# 행은 1,2,4 열은 0,2
df.iloc[[1,2,4],[0,2]]

<결과23>

 

▶ 열 또는 행 전체 범위 

# 1,2행, 열은 전체
df.iloc[1:3,:]

<결과24>

 

▶ 행을 전체로 하기

# 행은 전체, 1,2열
df.iloc[:,1:3]

<결과25>

 

▶ 조건에 맞는 데이터만 보기 

# 컬럼 A에서 0보다 큰 행만 얻기
df[df.A > 0]

<결과26>

 

▶ 데이터 전체 조건, 만족하지 않을 시 NaN처리

# 데이터 전체에서 0이상만 보기
df[df > 0]

<결과27>

 

▶ DataFrame의 위치뿐만 아니라 내용까지 복사하기, copy()

# 내용까지 복사하기, copy()
df2 = df.copy()

 

▶ DataFrame에서 새로운 칼럼을 추가하기

# E열에 one, one, two, three, four, three 추가
df2['E'] = ['one', 'one','two','three','four','three']
df2

<결과28>

 

▶ 특정 열에 어떤 내용이 있는지 조건을 걸고 싶을 때, isIn()

# E열에 tow four가 있는지 확인
df2['E'].isin(['two','four'])

<결과29>

 

▶ 통계 느낌의 데이터 볼 때 특정 함수 적용하기 apply명령, 누적합 알기, np.cumsum

# 특정 함수 적용하기
# 누적합 알기, cumsum
df.apply(np.cumsum)

<결과30>

 

▶ 최대값과 최솟값의 차이 알기, lambda 함수 이용

# one-line 함수 lambda
df.apply(lambda x: x.max() - x.min())

<결과31>

 

여기까지 Pandas의 기초 익히기였습니다. 감사합니다. 

'Python > 라이브러리' 카테고리의 다른 글

Pandas 고급  (0) 2019.09.25
편리한 시각화 도구 Seaborn  (0) 2019.09.19
파이썬의 대표 시각화 도구 Matplotlib  (0) 2019.09.17

댓글