하웅. 어제 1시까지 즐거운 프로젝트를 했ㄸㅏ.. 그리고 간맥하고 기숙사 들어와서 씻고 누우니 3시.. 아침 9시 수업이라 8시에 있어낫더니 지금 죽을 맛이다.
어제 DB/웹프 프젝을 하는데 핑퐁오빠가 데이터 전처리를 맡겼다. 바로 csv 파일에서 필요한 칼럼만 뽑고 데이터를 조금 수정하는 것!
나는 바보 같이 판다스의 read_csv를 하고 필요한 칼럼을 뽑으려고 했는데... 옛 직장 4학년 오빠가 우리 스터디룸에 놀러와서 나 하는 걸 보더니.
"그냥 엑셀로 하면 되는 거 아니야?"
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ맞다. 엑셀로 하면 되었따...
<엑셀 part>
데이터는 "연령별 도서 키워드 데이터- 빅데이터 마켓"이다.
1. 원본 데이터에서 필요한 칼럼
: 이 데이터에서 필요한 칼럼은 C열(연령대), D열(도서 순위), E열(키워드)이다.
2. 엑셀로 필요없는 칼럼 지우기
: 칼럼 선택하고 우클릭 누르면 삭제가 있따.
3. 도서 ID 칼럼 넣기
: 데이터가 총 1000개가 있는데 이걸 수동으로 1,2,3.... 으로 넣을까 생각했는데, 4학년 오빠가 엑셀 기능 중 하나를 알려주었다.
(1) 1을 쓴다
(2) 칸 맨 끝에 십자표가 뜨면 ctrl을 누르고 쭉 잡아 땡긴다
(3) 끗~
4. 데이터 수정
60대 이상 | ->60대 |
영유아, 유아, 청소년, 초등 | ->10대 |
: 표처럼 연령대 칼럼 데이터만 수정하면 된다. ctrl+F를 누르면
다음과 같은 차이 뜨는 데. 오른쪽 바꾸기>데이터 수정>모두 바꾸기 를 하면 끗~~
엥ㅋㅋㅋㅋㅋㅋ
사실 어제 했을 때 엑셀에서 (0~5)칸이 보호된 사항이라 변경이 안 된다는 문구가 떳다. 근데 왜 오늘은 돼냐 ㅅㅂ..
<판다스 part>
이러면 판다스를 쓸 필요가 없었네ㅜㅜㅜ 아무튼 어제 엑셀 전처리는 이게 최대였따.
1. 데이터 불러오기
: 는 다른 포스팅에서 구글 코랩에 데이터 파일 불러오기 참고
https://sogogi1000inbun.tistory.com/50
2. 데이터 수정1
import pandas as pd
file="/content/drive/MyDrive/Colab Notebooks/도서 데이터2 - 복사본.csv"
table=pd.read_csv(file) #파일에 있는 테이블 저장
for i in range(len(table)):
if '10대' in table['연령대'][i]:
table['연령대'][i] = '10대'
table.to_csv('bookTest2.csv', encoding='euc-kr')
: 처음에 연령대 칼럼만 따로 빼서 수정하고 다시 열을 추가할 생각이었는데, 역시 4학년 오빠가
"그냥 for문 돌리면 안돼?"
ㅋㅋㅋㅋㅋㅋ for문으로 하니 한줄 컷 가능. 그리고 csv 파일로 저장할 때 그냥 저장하고 다운 받으니까 글자가 다 깨지는 현상이 있는데. encoding='euc-kr'로 해주니 다운받아도 글자가 깨지지 않았다.
참고로 encoding='utf-8'도 글자가 깨진다
3. 문제 발생
: 후 다 만들었지만.. 수정 사항이 생겼따.
우리는 연령별 도서 키워드 데이터가 필요하다. 해당 데이터는 각 연령대별 데이터가 100개씩 있는데, 10대(영유아, 유아, 초등, 청소년)만 400개가 되어버려서 10대로 100개로 맞추기 위해 청소년만 남기고 다 날리기로 했따.
4. 데이터 수정2
: 이 데이터를 가져와서 다음 코드를 치면 돼지만..
file="/content/drive/MyDrive/Colab Notebooks/도서 데이터2 - 복사본.csv"
import pandas as pd
table=pd.read_csv(file) #파일에 있는 테이블 저장
for i in range(len(table)):
if '10대(0~5)' in table['연령대'][i]:
table=table.drop(i)
continue
if '10대(6~7)' in table['연령대'][i]:
table=table.drop(i)
continue
이렇게 하니까 행번호 600~800까지 싹 다 날라가더라ㅋㅋㅋㅋㅋ
이게 왜 문제냐면. read_csv를 하면 데이터가 딕셔너리처럼 구성된다. 즉, 행을 싹다 날리면 key값이 날라가서 key에러가 나는거다.
이 문제 해결법은.. 그냥 2번에서 완성한 csv 파일을 엑셀로 들어가서. 행을 삭제하는 거다.
뭔가 얼랑뚱땅 전처리를 했는데. 사실 엑셀로 다 할 수 있는 전처리였다. 괜히 시간 낭비만 오지게 한 것..
그래서 전처리를 하기 전에 꼭 코드로 해야하는 가?에 관해 생각을 해보았고. 엑셀도 훌륭한 전처리 기능을 가지고 있따는 걸 깨달은 시간이었다.
'짜투리' 카테고리의 다른 글
[IDE] vscode에서 jupyter 사용하기 (0) | 2022.01.01 |
---|---|
[xml/DB 프젝-데이터 통합] 엑셀로 xml문서 만들기+자바 DOM Parser+XML valid+XML 파일 XSD 만들기 (2) | 2021.12.07 |
[JAVA] intelliJ에서 github에 코드 올리는 방법 (0) | 2021.11.21 |
[python] 2차원 리스트를 생성하고 요소 변경하는 차이 (0) | 2021.08.17 |
[python] 'is'와 '==' (0) | 2021.08.06 |