인공지능/데이터 분석
[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