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

20일차 스터디노트 / 파이썬 판다스 - 데이터 훑어보기, 데이터 합치기, matplotlib 기초

by 김뎀뎀 2023. 1. 28.

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

📗 20일차 공부 내용 요약

 

판다스의 기초적인 내용들과 matplotlib의 기초적인 내용들을 학습했다.

1. 판다스 : 데이터 합치기, 인덱스 변경하기, 상관계수, 판다스에서 plot그리기

2.matplotlib : 그래프 기본 형태, 그래프 커스텀, scatter plot

 


📖  20일차 공부 내용 자세히

 

1. Pandas에서 데이터 합치기 

pd.merge( )
  • 두 데이터 프레임에서 컬럼이나 인덱스를 기준으로 잡고 병합하는 방법
  • 기준이 되는 컬럼이나 인덱스를 키값이라고 한다
  • 기준이 되는 키값은 두 데이터 프레임에 모두 포함되어 있어야 한다
#left 데이터 프레임

left = pd.DataFrame({
    "key" : ["K0", "K4", "K2", "K3"],
    "A" : ["A0", "A1", "A2", "A3"],
    "B" : ["B0", "B1", "B2", "B3"]
})

#right 데이터 프레임
right = pd.DataFrame([
    {"key":"K0", "C":"C0", "D":"D0"},
    {"key":"K1", "C":"C1", "D":"D1"},
    {"key":"K2", "C":"C2", "D":"D2"},    
    {"key":"K3", "C":"C3", "D":"D3"},
])

#left와 right 데이터 합치기

#1. key컬럼을 기준으로, 교집합
pd.merge(left, right, how = "inner", on = "key")

#2.key컬럼을 기준으로, 합집합
pd.merge(left, right, how = "outer", on = "key")

#3.key컬럼을 기준으로, left데이터프레임에 맞춰서
pd.merge(left, right, how = "left", on = "key")

 

2. Pandas에서 인덱스 지정

set_index()

선택한 컬럼을 데이터 프레임의 인덱스로 지정

data_result.set_index("구별", inplace=True)

 

3. matplotlib

matplotlib 그래프 기본 형태
  • plt.figure(figsize = (10,6))
  • plt.plot(x,y)
  • plt.show()

[  그래프 기초 ]

import numpy as np

t = np.arange(0, 12, 0.01)
y = np.sin(t)

 plt.figure(figsize = (10,6))
plt.plot(t, np.sin(t), label = 'sin') #label = '데이터 선의 의미'
plt.plot(t, np.cos(t), label = 'cos')
plt.grid(True) #True 면 격자무늬 나오고, False면 안나옴
plt.legend(loc = 3) #기본적으로 적절한 위치에 노출, loc = '원하는 위치'
#loc에 문자열로 쓰거나, 숫자로 작성 가능, upper right(1), upper left(2), lower left(3), lower right(4)
#plt.plot에서 정의 안했다면 => plt.legend(labels = ["sin", "cos"]) 
plt.title("Example of sinewave") #그래프 제목 추가
plt.xlabel("time") #x축 이름 (시간)
plt.ylabel("Amlitude") #y축 이름 (진폭)
plt.show()

 

 

[ 그래프 커스텀 ]

t = np.arange(0, 5, 0.5)

plt.figure(figsize=(10,6))
plt.plot(t, t, "r--") #red -- 점선 형태로 선을 그려라 # b : blue, g : green
plt.plot(t, t ** 2, "bs")
plt.plot(t, t ** 3, "g^")
plt.show()

 

t = list(range(0,7))
y = [1, 4, 5, 8, 9, 5 ,3]

plt.figure(figsize = (10,6))
plt.plot(
    t,
    y,
    color = "green",
    linestyle = "dashed", 
    marker = "o",
    markerfacecolor = "blue",
    markersize = 15,
)

plt.xlim([-0.5, 6.5]) #x축 설정
plt.ylim([0.5, 9.5]) #y축 설정
plt.show()

 

 

 

[ scatter plot]

t = np.array(range(0,10))
y = np.array([9, 8, 7, 9, 8, 3, 2, 4, 3, 4])

def drawGraph():
    
    plt.figure(figsize=(20,6))
    plt.scatter(t,y)
    plt.show()
    
drawGraph()

colormap = t

plt.figure(figsize=(20,6))
plt.scatter(t,y, s=50, c=colormap, marker = ">")
plt.colorbar()
plt.show()

 

 

4. pandas에서 plot 그리기

data_result["인구수"].plot(kind="bar", figsize=(50,10))


➰ 20일차 후기

작성하는 코드대로 그래프가 그려지는 것을 보니, 이제 본격적으로 데이터를 다루는 것들을 배우겠구나 라는 것이 느껴진다.

이번주내로 마쳐야 하는 파이썬 프로그래밍테스트 때문에 판다스 진도가 느리게 나가고 있다.

클래스, 예외처리 등의 이전에 학습했던 내용들을 복습하는데, 배운지 2주 정도밖에 안지났는데 왜 다시 낯선 내용들일까..ㅎㅎ

알고리즘을 학습하면서 어려워했어서 그런지 예외처리나 클래스 부분은 쉽다고 기억이 미화됬었나보다.

만만치 않지만,, 노력..으로 극복해보자..


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