데이터 분석을 위해 파이썬 판다스를 많이 사용하지만, 리스트를 이용해서 처리하는 것이 효율적일 때도 많습니다. 리스트로 바꾸는 방법은 어렵지 않지만, 직접 하려면 헷갈릴 때가 있습니다. 오늘은 파이썬 판다스 데이터 프레임을 리스트로 바꾸는 여러 가지 방법에 대해서 알아보겠습니다.
iris 데이터셋을 불러왔습니다. pandas에서 iris dataset을 사용하고자 할 때는, scikit-learn패키지의 load_iris함수를 이용하면 편리하게 사용할 수 있습니다.
import pandas as pd
from sklearn import datasets
iris = datasets.load_iris()
df = pd.DataFrame(iris['data'], columns=iris['feature_names'])
1. 딕셔너리로 변환하고 가져오기
판다스 데이터 프레임 상태에서는 바로 리스트로 변환하는 것은 어렵지만, 딕셔너리로 변환한 후에 원하는 칼럼 값을 가져올 수 있습니다. 딕셔너리로 변환하면, 칼럼명이 키값이 되고 데이터는 리스트로 저장됩니다. 키를 이용해서 원하는 칼럼 값을 가져오고, 리스트로 변환하면 되겠습니다.
df_dict = df.to_dict()
dic_val = df_dict['sepal length (cm)'].values()
dic_list = list(dic_val)
2. 칼럼을 선택한 후에 리스트로 변환하기
판다스 데이터프레임은 각각의 칼럼이 시리즈(Series)라는 데이터 타입으로 이루어져 있습니다. 이 타입은 tolist함수를 이용해 리스트로 변경할 수 있습니다. 혹은 list함수를 이용해서 리스트로 바꿀 수 있습니다.
df['sepal length (cm)'].to_list()
list(df['sepal length (cm)'])
3. 행(row)를 리스트로 추출하기
iloc를 이용하면 판다스 데이터 프레임의 특정 인덱스를 기준으로 값을 추출할 수 있습니다. 추출되는 값이 하나라면 아래와 같이 쉽게 리스트로 변환할 수 있습니다.
df.iloc[0].to_list()
list(df.iloc[0])
4. numpy array로 변경하기
데이터프레임을 리스트로 바로 변경할 수는 없지만, array로는 변경이 가능합니다. 다만 array() 함수는 pandas 1.4 이상의 버전에서 지원합니다. pandas버전이 1.4 이하라면 __array__() 함수를 이용하셔야 합니다. 여기서 리스트로 형 변환이 가능하지만, array안의 요소도 리스트로 변경해줘야 합니다. array도 컴프리헨션 문법이 가능합니다. 이를 이용해서 바꾸면 안의 내용도 쉽게 리스트로 바꿀 수 있습니다.
df.array()
여러 개의 row나 칼럼을 리스트로 변경하려면, for문을 돌리는 방법이 가장 적합합니다. iterrows함수를 이용하면 행을 기준으로 반복문을 실행할 수 있습니다.
판다스 코드 cheatsheet로 공부하기
판다스 코드가 헷갈릴 때는 cheatsheet를 이용하는 것도 좋은 방법입니다. 헷갈리는 코드를 찾아보기 쉽고, 잘 생각나지 않는 코드를 같이 정리해두면 나만의 소스도 만들 수 있습니다.
오늘은 이렇게 파이썬 판다스 데이터프레임 리스트로 추출하는 방법에 대해서 알아보았습니다. 처음에는 조금 헷갈릴 수 있지만, 기본 문법을 활용되면 되기 때문에 어렵지 않습니다. 판다스 데이터프레임을 리스트로 변환하고자 하는 분들에게 도움이 됐기를 바랍니다.
'데이터 > 데이터 분석' 카테고리의 다른 글
범주형 데이터 기준 의사결정나무 알고리즘 만들기 (0) | 2022.01.17 |
---|---|
데이터 분석 용어 정리 - Funnel, adhoc 분석 (0) | 2022.01.17 |
XGBoost와 랜덤 포레스트 재학습 하는 방법은? (0) | 2022.01.17 |
SOM 군집 알고리즘이란? 파이썬 학습 방법은?! (0) | 2022.01.16 |
파이썬 A/B테스트 필요샘플 크기 확인 법, 검정력 테스트?! (0) | 2022.01.15 |
지역별(시군구, 동단위까지) 소득 통계 데이터 수집하는 3가지 방법 (2) | 2022.01.14 |
파이썬 A/B 테스트 하는 방법은?! (0) | 2022.01.14 |
데이터 유사도 알고리즘 알아보기! (0) | 2020.11.08 |