클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

Pandas 2 - 데이터 변환하기 본문

인공지능/Numpy & Pandas

Pandas 2 - 데이터 변환하기

huenuri 2024. 7. 31. 15:02

조금 전에 pandas로 데이터를 불러오고 저장하며 원하는 데이터를 출력하는 실습을 진행해보았다. 이번에는 데이터를 변환하는 방법에 대해서 학습해보기로 하자.

바로 이어서 학습을 진행해본다. 데이터의 목적에 따라 사용하려면 변환 작업이 꼭 필요할 것이다.


 

 

 

이론 3 - 데이터 변환하기 1

 

데이터 타입 변환이란 데이터의 자료형을 변환하는 것이다. 입장객의 평균을 구할 때 연산이 필요하지만, 텍스트 타입으로 되어 있어 연산 값이 제대로 나오지 않는다. 올바른 계산을 위해 텍스트를 정수형 타입으로 바꾸어주어야 한다.

 

 

 

 

 

df에 어른 타입의 컬럼을 astype의 int로 변환한다. 그런 다음 어른 컬럼에 저장하면 df의 타입이 int로 변환된 것을 확인할 수 있다.

 

 

 

 

만약 메서드들이 원본 데이터를 바꿔버린다면, 변환된 데이터를 잊어버리고 계속 사용할 수도 있어 잘못된 데이터 분석 결과를 불러온다. 따라서 pandas에서는 변환한 데이터를 덮어씌워주는 작업을 해야 한다.
저장하지 않으면 원본 데이터에는 아무런 변화가 일어나지 않는다.

 

 

 

 

 

숫자 타입으로 변환하는데 astype보다 더 특화되어 있다.

 

 

 

 

 

to_numeric에 바꾸어야 하는 컴럼들을 저장한 후 반복문을 사용해서 적용하면 컬럼을 숫자형으로 바꿀 수 있다.

 

 

 

 

 

 

이 칼럼에는 날짜와 월, 일이 저장되어 있지만 컴퓨터는 이 자료를 읽을 수 없다. 그렇기에 시간 타입으로 변환해야 하는데 이때 to_datetime()을 사용한다.

 

 

 

 

 

시간 데이터로 변경한 후에는 dt 속성으로 다양한 작업을 할 수 있다. dt.year를 사용해서 연 정보만 칼럼을 생성하여 저장한다.
요일도 저장할 수 있지만, 이 경우에는 요일이 0~6까지 숫자로 저장된다.


 

 

 

 

실습 2 - 데이터 변환하기 1

 

문제 설명

 

 

 


 

 

 

 

직접 실습해보기

 

1. 데이터 불러오기

df를 사용하면 데이터를 다시 불러올 수 있다.

 

 

 

 

 

2. 데이터 info 사용하기

 

 

 

 

 

3. 데이터 자료형 바꾸기

 

 

 

 

 

4. 데이터 타입 변환 : astype()

 

 

 

 

5. 칼럼의 형태 변환하기

 

 

 

 

 

6. 데이터 타입 변환 : to_numeric()

to_numeric으로 전환하면 정수형으로 바뀌게 된다.

 

 

 

 

 

7. 외국인 칼럼 자료형을 숫자형으로 변환하여 저장

이 방법도 있고 foreiner = pd.to_numeric(df["외국인"])이라고 쓰는 방법도 있다.
dtype이 정수형으로 제대로 저장된 것을 확인할 수 있다.

 

 

 

 

 

8. for문을 사용해 입장객 컬럼을 숫자형으로 바꾸기

 

 

 

 

 

9. 데이터 타입 변환 : to_datetime()

변환한 후 날짜 데이터로 덮어씌워준다.

 

 

 

 

 

10. dt 속성 사용하여 datetime 형태에서 데이터 추출

df 날짜에서 속성을 활용하여 연 정보에 저장하겠다는 의미이다.

 

 

 

 

 

 

 

11. 채점하기


 

 

 

세번째 단원 학습을 마치고

Pandasd로 데이터를 변환하는 부분에 대해서 학습해보았다. 이론 수업을 할 때보다 실습문제 풀면서 더 잘 이해할 수 있었다. 단계별로 문제를 풀다보니 분량이 많아 데이터를 변환하는 두번째 내용은 다음 포스트에 담기로 했다.

이번 수업의 결론은 데이터를 변환할 때는 자료형의 타입을 바꾸어주어야 한다는 것이었다. 여러 함수를 사용해서 자료형을 바꾸어주고, 원하는 데이터는 컬럼을 사용할 수도 있었다.
다음에는 일괄적으로 데이터를 변형하는 방법에 대해 학습하게 될 것 같다.