Today I Learned/Pandas

[데린이의 TIL] Pandas 데이터프레임 만드는 세 가지 방법

듀랑이 2020. 10. 21. 18:16

데이터프레임(DataFrame), 어떻게 만드는 건데?

💡 판다스 1도 모르는데, 강의에서 나오는 데이터프레임 만드는 방법이 너무 다양해서 뭐가 뭔지 모르겠다.... 라고 생각이 든다고? 네, 그게 바로 접니다... 갓조교님이 알려주신 내용을 바탕으로 내 마음대로 이해한 데이터프레임 만드는 방법 세 가지 정리 시-작!

 

1. 리스트/어레이 형태일 때

먼저 pandas랑 numpy를 불러와주고!

import pandas as pd
import numpy as np

여러 리스트 형식이 합쳐져 있는 리스트와 array 데이터를 데이터프레임으로 만드는 방법

이런 리스트 형태를 데이터프레임으로 만들 때는 아래 2번 딕셔너리 형태랑 다르게 컬럼이름들을 또 다른 리스트 형태로 적어줘야 한다. columns 이름을 정해주지 않으면 0, 1 이런 식으로 출력된다.

나는 여기서 index가 0부터 시작하는게 싫어서 1부터 4로 변환해주었다!

 

array는 list랑 다른  비해서 적은 용량을 차지해서 훨씬 빠른 연산이 가능하다고 한다. numpy를 import해줘야 사용할 수 있고 대량의 데이터 처리 시 유용하다고 함!

dyurang_list = [['듀랑', 165], ['곰돌', 178], ['푸', 50], ['피글렛', 30]]
dyurang_array = np.array(dyurang_list)

df1 = pd.DataFrame(
    hj_list, 
    columns = ['name', 'height'],
    index = [1,2,3,4])

df2 = pd.DataFrame(hj_array, columns = ['name', 'height'])

 

2. 리스트가 여러개 있을때, 딕셔너리를 활용

여러 리스트가 존재할 때, 딕셔너리 형태를 빌려 데이터프레임을 만들 수 있다.

내가 만든 자료에서는 이름 리스트와 키 리스트 두개가 있다고 가정하고 코드를 짜보았음.

컬럼 이름들을 딕셔너리 안에 key 값으로 넣고, value가 될 값들은 리스트들로 연결지어서 생성할 수 있다.

 

이 방법은 숙제에서 유용하게 써먹었는데, 뉴스기사 제목을 크롤링해올 때 빈 리스트를 만들고,

거기에 결과값을 append하는 방식으로 문제를 해결할 수 있었다.

names = ['듀랑', '곰돌', '푸', '피글렛']
height = [165, 178, 50, 30]

df3 = pd.DataFrame({
    'name': names,
    'height': height
})

 

3. 여러 딕셔너리가 리스트로 감싸져 있을 때

위의 자료들과 다른 것은 아래는 아예 컬럼명이 될 key와 value이 딕셔너리 형태로 리스트에 저장되어있다는 것

hj_dict = [
    {'name': '듀랑', 'height': 165},
    {'name': '곰돌', 'height': 178},
    {'name': '푸', 'height': 50},
    {'name': '피글렛', 'height': 30}
]

이건 엄청 간단하게 끝난다! 왜냐하면 컬럼을 따로 지정해줄 필요가 없으니까!

df6 = pd.DataFrame(hj_dict)

 

이렇게 정리해두니 헷갈리던게 머릿속에 자리를 잘 잡은 느낌이다.

내가 가지고 있는 데이터 형태에 따라서 어떤 방식으로 데이터프레임을 만들지 알게 되어 뿌듯하다!

앞으로 꾸준히 복습하고 글도 쓰면서 발전해나가야겠다😎