본문 바로가기
제로베이스 데이터 스쿨/일일 스터디 노트

19일차 스터디노트 / 파이썬 판다스 기초( Series, DataFrame, 데이터 정렬, 선택, 슬라이스, 컬럼 추가, 제거, apply)

by 김뎀뎀 2023. 1. 27.

※제로베이스 데이터 취업스쿨 11기 수강 중

📗 19일차 공부 내용 요약

 

판다스에 대한 기초적인 내용들을 학습했다.

1. 판다스 데이터 읽기 : pandas를 import하고, 엑셀과 csv 파일을 읽어왔다

2. 판다스 기초 : 판다스의 데이터형을 알아보고, 데이터프레임을 만들어 데이터를 정렬,선택하고 특정 컬럼을 추가,제거하는 등의 실습을 진행하였다

 


📖  19일차 공부 내용 자세히

1. 엑셀 및 csv 파일 읽기

pandas.read_csv("파일 경로",  encoding = "utf-8")
#csv 파일 불러오기, 한글 파일 인코딩

pandas.read_excel("파일경로")
#excel 파일 불러오기

CCTV_Seoul.columns
#칼럼 이름 조회

CCTV_Seoul.columns[n]
#인덱스 n에 해당하는 칼럼 이름 조회

CCTV_Seoul.head()
CCTV_Seoul.head(n)
#상단에 있는 5개의 데이터 조회, 상단에 있는 n개의 데이터 조회

CCTV_Seoul.tail() 
CCTV_Seoul.tail(n)
#하단에 있는 5개의 데이터 조회, 하단에 있는 n개의 데이터 조회

CCTV_Seoul.rename(columns={CCTV_Seoul.columns[0] : "구별"}, inplace = True)
#컬럼명 변경

pop_Seoul = pd.read_excel("../data/01. Seoul_Population.xls", header = 2, usecols = "B, D, G, J, N")
#header 자료를 읽기 시작할 행 지정, usecols 읽어올 엑셀의 칼럼 지정

 

2. 판다스?

  • pythn에서 R만큼의 강력한 데이터 핸들링 성능을 제공하는 모듈
  • 단일 프로세스에서는 최대 효율
  • 코딩 가능하고 응용 가능한 엑셀로 받아들여도 됨
  • 누군가 스테로이드를 맞은 엑셀로 표현함
import pandas as pd
import numpy as np

#pandas는 통상 pd로 import하고, numpy는 통상 np로 import한다

 

3.  Series

  • Pandas의 데이터형을 구성하는 기본은 Series이다
  • index와 value로 이루어져 있다
  • 한가지 데이터 타입만 가질 수 있다
pd.Series([1,2,3,4])

'''
0    1
1    2
2    3
3    4
dtype: int64
'''

pd.Series([1,2,3,4], dtype = str)

'''
0    1
1    2
2    3
3    4
dtype: object
'''

 

4.DataFrame

  • pandas에서 가장 많이 사용되는 데이터형은 DataFrame이다
  • indes와 columns를 지정하면 된다
#표준정규분포에서 샘플링한 난수 생성
data = np.random.randn(6,4) # 6*4 행렬 생성

df = pd.DataFrame(data, index = dates, columns = ["A", "B", "C", "D"])

 

5.정보탐색

df.index       #인덱스
df.columns     #컬럼
df.values      #밸류
df.info()      #데이터 프레임의 기본 정보 확인
df.descrive()  #데이터 프레임의 기술통계 정보 확인

 

6.데이터 정렬

df.sort_values(by = "B", ascending = True, inplace = True)
 #B 컬럼을 기준으로, 오름차순, 바로 저장

 

7.데이터 선택. 슬라이스

#한 개 컬럼 선택
df["A"] 

#두 개 이상 칼럼 선택
df[["A", "B"]]


#슬라이스

#offset index
#[n:m] n부터 m-1까지
#인덱스나 컬럼의 이름으로 하는 경우는 끝까지 포함

df[0:3]
df["20210101":"20210104"]

#loc
#특정 이름으로 특정 행, 열을 선택

df.loc["20210102":"20210104", ["A","D"]]
df.loc["20210102", ["A", "B"]]

#iloc
#컴퓨터가 인식하는 인덱스 값으로 선택

df.iloc[3]
df.iloc[3:5, 0:2]

 

 

8.컬럼추가, 제거

#컬럼 추가
df["E"] = ["one", "two", "three", "four", "five", "six"]

#컬럼 제거
del df["E"]
df.drop(["D"], axis = 1) # axis = 0 가로, axis =1 세로 / 기본은 0이다

 

9.특정요소확인

df["E"].isin(["two", "five"])

 

10.apply

df["A"].apply("sum") # -1.8596915794725628

df["A"].apply("mean") #-0.30994859657876045

df["A"].apply("min"), df["A"].apply("max") #(-1.5902492328245474, 0.7188164030302282)

df[["A","D"]].apply("sum")
'''
A   -1.859692
D    0.053207
dtype: float64
'''

df["A"].apply(np.mean)
'''
2021-01-01    0.718816
2021-01-02    0.123319
2021-01-03   -1.590249
2021-01-04    0.304314
2021-01-05   -1.232608
2021-01-06   -0.183283
Freq: D, Name: A, dtype: float64
'''

df["A"].apply(np.std)
'''
2021-01-01    0.0
2021-01-02    0.0
2021-01-03    0.0
2021-01-04    0.0
2021-01-05    0.0
2021-01-06    0.0
Freq: D, Name: A, dtype: float64
'''

df.apply(np.sum)
'''
A   -1.859692
B    0.417206
C   -0.357037
D    0.053207
'''


def plusminus(num):
    return "plus" if num>0 else "minus"

df["A"].apply(plusminus)


df["A"].apply(lambda num: "plus" if num > 0 else "minus")

'''
2021-01-01     plus
2021-01-02     plus
2021-01-03    minus
2021-01-04     plus
2021-01-05    minus
2021-01-06    minus
Freq: D, Name: A, dtype: object

➰ 19일차 후기

역시 판다스를 처음 활용해보는 것이라 낯설다.

실습 위주로 진행되는 강의라, 개념이 확실하게 와닿지는 않아서 스스로 공부가 필요할 듯 하다.

우선 이번주에 파이썬 프로그래밍 테스트가 있어서, 판다스보다는 기존 학습내용 복습에 좀 더 집중하고 있다.

홀가분하게 테스트가 끝나고, 얼른 판다스 학습에 집중하고 싶은 마음이다,,,

 


※본 내용은 제로베이스 데이터 취업 스쿨에서 제공하는 학습 내용에 기반합니다.