안녕하세요! 데코입니다!
오늘은 파이썬에서 많이 다루는 numpy를 이용해서
배열을 가로 세로로 쌓는 방법에 대하여 포스팅하려고 합니다!
저는 현재 모델링에 3차원 array를 활용하고 있어요!
array를 dataframe으로 변환해서 csv로 저장하고 싶어서 코드를 구현했는데요!
이번 포스팅은 어떻게 3차원 array를 dataframe으로 구상했는지 설명하면서 코드 공유하는 포스팅입니다!!
1. 예시 데이터 생성
예시로 활용하기 위해 0부터 100까지의 값을 가지는 임의의 3차원 array을 만들었어요!
만든 data라는 array의 shape을 확인해 보면 (4,6,3)을 가지고 있어요!
2. 수동으로 dataframe으로 변환하기
위 코드는 Pandas를 사용하여 3차원 array 데이터를 재구성하고,
데이터 프레임(DataFrame)으로 만드는 과정이에요!
생성하고 싶은 데이터 프레임의 형태는 2차원 형태로,
열은 case, col1, col2, col3으로 이루게 만들고 싶었어요!
기존의 (4, 6, 3)의 shape을 reshape을 통해 (24,3)으로 변환을 해주고 dataframe으로 저장을 했어요!
그다음에 4개의 데이터를 구분해 줄 수 있도록 'case'변수를 하나 더 생성해서 1~4를 부여해 줬어요!
case 컬럼은 반드시 필요한 건 아니지만 저는 활용을 하려고 해서 코드를 추가해 보았어요!
필요 없으신 분들은 case가 나와있는 코드는 삭제 혹은 주석 처리하시고 실행하시면 됩니다!
3. 자동으로 dataframe으로 변환하기
실제로 데이터를 다룰 때에는 더 많은 수를 다루니까
python으로 array의 shape에 따라 자동으로 생성되도록 코드를 작성해 보았어요!
방식은 수동으로 생성한 것과 같은데, shape에 대해서 자동으로 할당해 주도록 구현했습니다!
먼저, 데이터의 길이를 계산하여 1차원 배열로 reshape 해주었어요!
data.shape[0]은 3차원 데이터의 개수, data.shape[1]은 3차원 데이터 하나가 보유한 데이터의 개수를 의미해요!
data_length 변수에 data.shape[0]와 data.shape[1]를 곱한 데이터의 길이를 계산하여 저장해 주었어요!
다음으로, 데이터 프레임의 컬럼 이름을 설정하기 위해, columns_list 변수를 생성했어요!
예시에는 3개의 열만 가지고 있으니까 수동으로 해도 되지만, 더 많은 열이 있다고 가정해서 shape으로 계산했어요!
이 변수는 열의 개수인 data.shape[2]에 따라
"col1", "col2", "col3"으로 구성된 컬럼 이름을 리스트로 저장됩니다!
그다음에 pd.DataFrame 함수를 이용해서 데이터 프레임으로 구성했습니다!
마지막으로, 첫 번째 열에 각 case에 대한 번호를 부여한 case_list를 생성했어요!
만든 리스트를 df.insert 함수를 사용하여 데이터 프레임의 첫 번째 열에 추가해서 완성했습니다!
이렇게 오늘은 3차원 array를 dataframe으로 변환하는 방법과 코드를 보여드렸습니다!
위에서 작성한 코드 파일도 공유할게요!
설명이 어려운 부분 혹은 잘 이해가 안 가는 부분
그리고 더 궁금한 내용이 있다면
언제든지 댓글로 남겨주세요!
빠르게 궁금증을 해결해 드릴게요!
공감과 댓글은 큰 힘이 됩니다!
오늘도 블로그 방문해 주시고
포스팅 읽어주셔서 감사합니다!
다들 오류 없는 파이썬 코딩 해보아요! :)
'Skill Sets > Python' 카테고리의 다른 글
[python/pandas] 판다스(pandas) 활용한 데이터 전처리(2) (39) | 2023.05.12 |
---|---|
[python/pandas] 판다스(pandas) 활용한 데이터 전처리(1) (30) | 2023.05.06 |
[Python/파이썬] Python내 logging을 통한 log 파일 남기기(코드 포함) (20) | 2023.02.19 |
[Python] 크기가 작은 부분 문자열(프로그래머스/코딩테스트) (13) | 2022.12.29 |
jupyter notebook에 가상환경 커널 추가 이유 및 방법(python ipykernel 이용) (12) | 2022.12.18 |