본문 바로가기

데이터분석/pandas

(8)
pandas map 함수와 정규표현식을 이용한 텍스트 전처리 pandas 의 map 함수를 이용하여 텍스트 전처리를 해보겠습니다. 보통 텍스트 데이터를 가져와서 정제할 때, 정규표현식을 이용해서 정제를 하는데요. 도메인 방향에 맞춰서 정제를 해야겠지만, 이번에는 자음,모음,html 태그, 특수기호를 제거해보겠습니다. 그럼 데이터를 가져와서 바로 해보겠습니다. 예전에 크롤링한 제품 리뷰 데이터를 그대로 쓰겠습니다. 중간에 dropna 하고 해서 12584 개의 리뷰가 있습니다. 10개 정도만 보겠습니다. ㅠㅠ 라든지 !! ~~ 같은 특수기호들이 눈에 보입니다. map 함수에 적용할 클리어링 함수는 아래와 같습니다. # cleasing 함수 def cleasing(text): repl ='' pattern = '([ㄱ-ㅎㅏ-ㅣ]+)' # 자음, 모음 제거 text =..
pandas dataframe csv file to txt (feat.corpus 만들기) 간단한 팁을 정리해보려고 합니다. 텍스트 데이터를 정제하다 보면 corpus 를 만들어야 하는데요. 이 때, 보통 txt 포맷으로 만드는 걸로 알고 있습니다. 크롤링을 할 때, txt 나 csv 파일 둘 다 해놓아도 어떤 api 에서는 csv 파일을 pandas로 읽어서 작업하는 게 편할 때가 있고, 어떤 api 에서는 txt 파일로 input 해줘야 하는 경우들이 종종 있습니다. 그래서 이번 시간에는 pandas 의 dataframe 중에 특정 Series 컬럼을 txt 로 바꾸는 걸 정리해보려 합니다. 대단한 건 아니지만 이게 간간히 필요할 때가 있습니다. { 저의 경우에는 말이죠 :) } 저의 경우에는 sentencepiece 로 vocab 을 생성하거나 scikit-learn 에 특정 벡터를 만들..
공공데이터 '아파트 분양가격' 동향 파악하기 - final 2015년 8월 이전 데이터를 보겠습니다. 중간에 ... 으로 생략된 게 보이는데요. pd.options.display.max_columns 로 컬럼이 다 보이게 설정했습니다. 위 데이터 프레임은 컬럼이 100개는 아니지만 일단 최대치를 df_first 데잍프레임 컬럼보다 많이 늘려놓았기에 모든 컬럼이 이제 보입니다. 최근 데이터 프레임과 예전 데이터 프레임(df_first) 의 양식이 많이 다릅니다. df_first를 최근 데이터 프레임 양식에 맞춰서 합쳐주겠습니다. df_first 데이터를 살펴보겠습니다. 컬럼 데이터들을 melt 시키겠습니다. 기존 컬럼을 행으로 녹여내는게 melt 입니다. melt 시킨 데이터를 다른 이름으로 할당하고 컬럼명 df_lasf 데이터프레임과 맞췄습니다. 연도,월 분리 ..
pandas series dataframe 이번 시간에는 pandas 데이터의 시리즈와 데이터프레임에 대해 알아보겠습니다. pandas가 NumPy의 스타일을 많이 차용했지만 가장 큰 차이점은 pandas 는 표 형식의 데이터나 다양한 형태의 데이터를 다루는 데 초점을 맞춰 설계했다는 것입니다. NumPy는 단일 산술배열 데이터를 다루는 데 특화되어 있습니다. 1) Series - 일련의 객체를 담을 수 있는 1차원 배열 같은 자료구조입니다. - 색인(index)라고 하는 배열의 데이터와 연관된 이름을 가지고 있습니다. Series 객체의 문자열 표현은 왼쪽에 색인을 보여주고 오른쪽에 해당 색인의 값을 보여줍니다. 위 샘플에서는 데이터의 색인을 지정하지 않았기에 기본 색인인 정수 0에서 N - 1 (N은 데이터의 길이)까지 숫자가 표시됩니다. S..
공공데이터 '아파트 분양가격' 동향 파악하기 - 1단계 이번시간에는 공공데이터에 있는 아파트 분양가격 데이터셋으로 분석을 해보는 포스팅을 해보겠습니다. 인프런 '공공데이터로 파이썬 데이터 분석 시작하기' 강의를 따라하면서 정리하는 영상입니다. 강의를 찍은 시점이 2018년 11월이었는데, 2020년 3월 초, 이 파트 강의가 리뉴얼되었습니다. 강의가 최신 데이터로 업데이트되어서 다시 진행하였고, 좀 더 디테일한 방식으로 바뀌었습니다. 참고해주세요 :) 먼저, 데이터셋은 https://www.data.go.kr/dataset/3035522/fileData.do 공공데이터포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Dat..
pandas dataframe 문자열 칼럼 숫자형(int,float)으로 변환 pandas Dataframe 에서 문자열 칼럼을 숫자형으로 바꿔야할 때가 종종 있습니다. 그 때 쓰는 메서드는 보통 pd.to_numeric() dataframe.astype() 이렇게 2가지가 있습니다. 하나하나 살펴보겠습니다. 1) to_numeric() 시리즈 데이터를 하나 만들었습니다. 여기에 pd.to_numeric( ) 을 하겠습니다. 시리즈 데이터로 넣었더니, 타입이 int 로 만들어진 것을 확인할 수 있습니다. 근데, 만약에 dataframe으 모든 칼럼을 숫자형으로 바꾸고 싶다면 어떨까요? 이 때는 apply 라는 메서드를 통해서 사용합니다. apply 메서드에 대해 잠깐 살펴보겠습니다. apply 메서드 안에는 커스텀함수나 기존의 메서드들을 인자로 넣어주시면 됩니다. 한 칼럼의 최대값..
pandas 개념2 불린 추출과 중복값 처리(drop_duplicated) 이번 시간에는 불린 추출과 중복값 처리를 다뤄 보겠습니다. pandas cheet sheet1 의 Subset Observations(Rows)를 중심으로 다루어보겠습니다. 먼저 불린 추출의 경우 dataframe이름[ dataframe이름['칼럼 이름 '] 조건 연산 ] 의 형태로 인덱싱을 하면 되는데요. 예를 들겠습니다. 위처럼 데이터프레임을 하나 만들어 주겠습니다. 대괄호 안에 데이터프레임 이름과 칼럼명 그리고 조건 연산자를 넣어주면 (크거나 같거나 등등) 그에 조건이 true 인 로우만 보여주는 것을 볼 수 있습니다. 좀 더 보겠습니다. 'Do it 데이터분석을 위한 판다스 입문' 책에서 가져온 데이터입니다. 불린 추출을 위처럼 해주면 됩니다. 위에서는 나이가 평균 이상인 과학자들만 보여달라는 불..
pandas 개념1 기본(head,tail,sample,shape,info) + loc, iloc, 행번호, 인덱스 이해하기 (들어가기에 앞서서...) pandas는 데이터분석 하는 분들이라면 많이들 쓰는 패키지입니다. 위에 있는 판다스 치트 시트 2장만 온전히 이해한다면 기본적인 데이터 분석은 할 수 있습니다. 하지만, 위에 있는 pandas cheet sheet 를 온전히 이해하려면 알아야 될 게 몇 가지 있기에 그 부분들을 따로 정리하려고 합니다. 개인적으로 pandas cheet sheet 은 나중에 정리할 때 쓰는 것이 좋다고 생각합니다. 일단 제 나름대로 pandas 쓰면서 알아야하는 것들을 최우선으로 포스팅들을 이어나가보도록 하겠습니다. --시작-- 1. 기본 판다스에서는 데이터를 시리즈(Series)와 데이터프레임(DataFrame)이라는 자료형을 사용합니다. 데이터프레임은 엑셀에서 보는 시트(sheet)랑 동일..