안녕하세요!
오늘은 딕셔너리를 데이터 프레임으로 바꾸는 방법, 그리고 데이터 프레임을 리스트와 딕셔너리로 바꾸는 방법에 대해서 알아보겠습니다.
계속해서 작성하는 게 전부 데이터 프레임과 관련이긴 한데 제가 생각했을 때 데이터 분석할 때는 데이터 프레임을 가장 많이 쓰기도 하고 그만큼 자유자재로 다룰 수 있어야 한다고 생각합니다.
그래서 데이터 프레임을 내가 원하는 대로 다루기 위한 코드들을 연습하고 있는데 그중에서 데이터 프레임을 다른 형태로 만드는 것과 다른 형태로 된 데이터를 데이터 프레임을 만드는 방법에 대해서 정리를 해보려고 합니다.
먼저 필요한 라이브러리를 불러올게요!
import seaborn as sns
import pandas as pd
import numpy as np
seaborn은 저번처럼 데이터를 불러오기 위해서 사용하고, pandas는 데이터 프레임을 만들기 위해서는 필수죠! 그리고 numpy 역시도 거의 기본으로 쓰입니다.
(1) dictionary를 dataframe으로 바꾸기
먼저 dictionary 데이터를 dataframe으로 바꾸는 것부터 하겠습니다.
그러기 위해서는 먼저 딕셔너리 데이터 부터 만들어 주겠습니다.
new_dict = {"number" : [1,2,3], "name" : ['james','jin','lily']}
number라는 key에 1,2,3을 넣어주고 name에는 james, jin, lily를 넣어주었습니다.
이 딕셔너리 데이터를 이용해서 데이터 프레임을 만들어보겠습니다.
#dict을 dataframe으로 만들기
new_df = pd.DataFrame(new_dict)
print(new_df)
데이터 프레임으로 만들기 위해서 사용할 코드는 pd.DataFrame입니다.
new_dict안에 내가 바꾸기 원하는 딕셔너리 데이터의 이름을 넣어주면 딕셔너리가 데이터 프레임으로 바뀝니다.
print를 통해서 결과를 살펴보겠습니다.
딕셔너리 데이터의 key가 데이터 프레임의 열 이름으로 가고 value가 열 순서로 들어갔습니다.
생각보다 간단하게 딕셔너리를 데이터 프레임으로 만들 수 있습니다.
(2) dataframe을 list와 dictionary로 만들기
다음으로 데이터 프레임을 list와 dictionary로 만들어 보겠습니다.
이미 있는 데이터 프레임을 이용해서 만들기 위하여 seaborn에 있는 iris 데이터를 불러오겠습니다.
iris = sns.load_dataset('iris')
iris5 = iris.head(5)
seaborn 데이터에 대해서 궁금하시다면 아래의 게시물을 확인해 주세요!
iris5는 iris의 데이터 중에서 위의 5개만 불러서 새로 만든 데이터 프레임입니다. 간단한 작업을 할 건데 모든 iris 데이터를 이용하기는 부담스러워서 제가 임의로 만들었습니다.
프린트한 결과를 보시면 위에서부터 5개의 데이터가 불러와진 것을 알 수 있습니다.
1) dataframe을 list로 만들기
데이터 프레임의 어떤 데이터를 list로 만드느냐에 따라서 코드가 달라집니다.
iris_values_list = iris5.values.tolist()
iris_keys_list = iris5.columns.tolist()
print(iris_values_list)
print(iris_keys_list)
사용할 코드는 일단 기본적으로 tolist()입니다.
하지만 tolist를 데이터 프레임에 그대로 사용하면 오류가 발생합니다.
list를 만들기 위해서는 value 따로 columns 따로 리스트를 만들어줘야 합니다.
첫 번째 코드는 iris5의 값들만 뽑아서 list로 만드는 것입니다.
두 번째는 iris5의 columns들의 이름을 list 데이터로 만들었습니다.
이를 각각 확인해 보면,
먼저 값들은 행별로 각각 리스트로 저장된 것을 알 수 있습니다.
그리고 열 이름들이 하나의 리스트에 저장된 것을 알 수 있습니다.
2) dataframe을 dictionary로 만들기
다음은 데이터 프레임을 딕셔너리로 만드는 방법입니다.
앞의 리스트보다는 코드가 간결합니다.
#dataframe을 dictionary로 바꾸기
iris_dict = iris5.to_dict()
print(iris_dict)
바로 to_dict()입니다.
원하는 데이터프레임.to_dict()을 입력하면 데이터 프레임을 딕셔너리로 만들어 줍니다.
확인해볼까요?
각 열 이름을 기준으로 딕셔너리가 만들어진 것을 확인할 수 있습니다.
여기서 각 열 안에 들어 있던 데이터가 또다시 딕셔너리 형태로 들어간 것을 확인할 수 있지만 우리가 원하는 것은 대부분 이 데이터가 리스트로 들어간 형태일 것입니다.
그러기 위해서는 코드가 약간 달라져야 합니다.
iris_dict2 = iris5.to_dict('list')
print(iris_dict2)
to_dict()하고 비워졌던 괄호 안에 list를 입력하면 원하는 대로 데이터가 리스트로 들어가지게 됩니다.
각 열이름을 기준으로 데이터가 리스트 형태로 되어 있는 것을 알 수 있습니다.
다른 방법도 있습니다. 괄호 안에 list 대신 records를 넣어줄 수도 있습니다.
각 행마다 열이름을 key로 값을 value로 하는 딕셔너리를 만들고 그 행으로 만들어진 딕셔너리를 리스트로 만들 수도 있습니다.
iris_dict3 = iris5.to_dict('records')
print(iris_dict3)
코드는 앞에와 똑같고 단지 괄호 안에 records를 넣어주었습니다. 결과를 살펴볼까요?
앞에서 설명드린 말이 약간 헷갈릴 수도 있지만 프린트한 결과물을 보시면 쉽게 이해하실 수 있으실 것 같습니다.
옵션이 여러 개 있어서 이것저것 사용해 보았지만 결국 제일 많이 사용할 것은 list 형태로 집어넣는 코드일 것 같습니다.
오늘은 이렇게 해서 딕셔너리를 데이터 프레임으로 만들거나 데이터 프레임을 리스트나 딕셔너리 형태로 만드는 방법에 대해서 소개해 드렸습니다.
쉽지만 가끔씩 까먹는 경우가 있어서 도움이 될까 싶어서 정리를 했습니다. 연습하시면 금방 적용하실 수 있을 겁니다!!
읽으신 분들에게 도움이 되기를 바라며....
오늘 하루도 즐거운 하루 보내세요( •̀ ω •́ )✧
'코딩 > Python' 카테고리의 다른 글
파이썬 기초 - dataframe 조건에 맞는 값 불러오기(불린 인덱싱) - (1) (0) | 2022.01.04 |
---|---|
파이썬 기초 - dataframe 인덱싱을 위한 코드 iloc, loc - (0) | 2022.01.04 |
파이썬 기초 - 데이터 전처리를 위한 DataFrame 데이터 살펴보기 - (with seaborn) (0) | 2021.12.31 |
파이썬 기본 - 인터넷에서 간편하게 구동할 수 있는 구글 코랩(Colaboratory) 소개- (0) | 2021.12.30 |
파이썬 기초 - txt 파일 불러오기 & 리스트, 데이터 프레임으로 저장하기 - (0) | 2021.12.17 |