판다스와 넘파이는 서로 간단하게 변환이 가능하다. 머신러닝, 딥러닝에서는 numpy로 분석해야 연산의 속도가 빨라지기 때문에 pandas로 기본 분석을 수행한 후 넘파이로 변환하여 머신러닝이나 딥러닝을 수행한다. 반면에 numpy는 데이터를 눈으로 확인하기 어려워 pandas로 변환하여 데이터를 확인한다.
1) 판다스(pandas)를 넘파이(numpy)로 변경하기 : df.to_numpy()
먼저 판다스로 데이터프레임 형태의 데이터를 불러오자.
import pandas as pd
DF = pd.read_csv('IRIS.csv', engine = 'python')
DF.head()
이것을 DF.to_numpy()를 사용하면 간단히 numpy로 변경하여 불러올 수 있다. 하지만 이때 넘파이로 변환하면 행 인덱스와 열 이름을 지정할 수 없다는 것이 단점이다.
NP = DF.to_numpy()
NP
2) 넘파이(numpy)를 판다스(pandas)로 변경하기 : pd.DataFrame(넘파이)
다음은 아래의 A와 같은 넘파이 행렬을 판다스로 변환해보자.
import numpy as np
A = np.array([
['Minsoo','Minju','Yeomin','Hyeri','Junghun','Sunny','Bummee','Luna'],
[33,25,19,25,32,36,23,36],
['M','W','W','W','M','W','M','W'],
[91,50,69,98,72,85,43,61],
[65,77,56,82,79,91,71,63],
[30,95,64,88,34,69,15,25],
])
A. 인덱스 없이 데이터프레임 만들기
간단히 pd.DataFrame()의 괄호 안에 A를 넣어주면 된다. 이때는 넘파이 형태 그대로 데이터프레임이 만들어지는데 그럼 행과 열을 뒤집고 싶으면 어떻게 하면 될까?
DF1 = pd.DataFrame(A)
DF1
B. 인덱스 없이 데이터프레임 만들기 (행과 열 전치하기)
행과 열을 전치한 데이터프레임을 만들고싶다면 numpy이름.T를 사용하여 전치한 후에 그것을 데이터프레임 형태로 변환하면 된다.
DF2 = pd.DataFrame(A.T)
DF2
C. 특정 칼럼명을 사용하여 데이터프레임 만들기
A와 B의 경우 칼럼 이름을 지정해주지 않아서 0부터 5까지의 번호가 매겨진 것을 확인할 수 있다. 이때 특정 칼럼명으로 설정하고 싶다면 columns = []를 사용하여 칼럼명을 지정해주면 간단히 해결할 수 있다.
DF3 = pd.DataFrame(A.T, columns = ['name','old','sex','score1','score2','time'])
DF3
'빅데이터 분석기사[python] > pandas와 기본 데이터 처리' 카테고리의 다른 글
[python 파이썬, pandas 판다스] 데이터 탐색 (연속형 자료) (1) | 2023.04.29 |
---|---|
[python 파이썬, pandas 판다스] 데이터 탐색 (범주형 자료) (0) | 2023.02.03 |
[python 파이썬, pandas 판다스] 데이터 값 변경하기, 바꾸기 (0) | 2022.05.11 |
[python 파이썬, pandas 판다스] 데이터 특정 조건 추출 (0) | 2022.05.11 |
[python 파이썬, pandas 판다스] 데이터 변환2 (열 필터링, 열 추가, 열 삭제) (0) | 2022.05.10 |