인공지능/데이터 분석

[Python] Pandas DataFrame을 numpy 배열로 변환하는 방법

Prcnsi 2022. 2. 22. 18:05
728x90

AttributeError: 'Series' object has no attribute 'reshape' 이 에러가 뜰 때도 판다스의 Series를 numpy의 array로 바꾸면 됩니다. 판다스에는 시리즈랑 데이터 프레임이 있는데 사이킷런의 모델이나 메서드에 돌릴 때 요구 인자로 numpy의 배열을 요구할 때가 많습니다. 그럴 때 넘파이로 바꾸는 법은 아래와 같습니다.


1. 넘파이로 바꾸기

데이터프레임명=데이터프레임명.to_numpy()


2. 타입 변환하기

데이터프레임명=데이터프레임명.reshape()



아래 예시는 여러행의 데이터프레임에서 특정행만 뽑아와서 그 행만 배열로 바꾸는 예제입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
data=[[2,3,4,5],[6,3,7,3],[5,7,3,4],[7,8,4,9]]
exam=pd.DataFrame(data,columns=['math_score','english_score','korean_score','science score')
 
vec1=vec.iloc[1,:].to_numpy()
vec2=vec.iloc[3,:].to_numpy()
 
vec1=vec1.reshape(1,-1
vev2=vec2.reshape(1,-1
 
exam1
# array([[6, 3, 7, 3]], dtype=int64)
 
exam2
# array([[7, 8, 4, 9]], dtype=int64)
cs


728x90