데이터프레임 중복행 제거하는 방법입니다. 이전 포스팅에서 컬럼이 같은 경우에서 중복데이터 병합하기 포스팅을 작성했었는데요. 그 내용 중에서 중복행 제거하는 방법을 언급했었습니다. 그렇지만 데이터 병합에 초점으로 쓴 글이라서 생략된 것이 꽤 있었습니다. 이번 포스팅에서는 drop_duplicates 그 자체에 초점을 맞출까 합니다. 중복행 제거하기 중복행을 제거하려면 drop_duplicates() 밖에 쓸 게 없습니다. 파라미터는 다음과 같습니다. 함수 실행 후 Return은 중복행 제거 후 데이터프레임으로 나타납니다. DataFrame.drop_duplicates(subset=None, *, keep='first', inplace=False, ignore_index=False) subset : colu..
데이터프레임 내에서 순위 구하는 방법입니다. 순위도 어찌보면 데이터 정렬을 하는 것입니다. 다만, 데이터를 순위로 변환하고 동점처리를 어떻게 할것인가에 따라 정렬이 달라집니다. 파라미터는 다음과 같습니다. df.rank(axis=0,method='average',ascending=True,..) axis : 0(defualt)는 행, 1은 열을 기준으로 함 method : 동점처리 기준, 방법은 average(defualt), min, max, first, dense 으로 5가지가 있음. ascending : True(default) 오름차순을 반영해 순위(가장 작은 값이 1위), False 내림차순을 반영해 순위(가장 큰 값이 1위) 동점 처리 순위를 하다보면 동점이 나오는 경우 어떻게 할지 정해야 합..
파이썬 문자열 공백 없애는 방법입니다. 공백 없애는 방법에는 3가지가 있습니다. 파이썬 replace 함수 이용해서 공백 제거 파이썬 strip함수 이용 해서 공백 제거 (rstrip, lstrip) 정규표현식의 sub함수 이용해 공백 제거(re.sub) 1. replace 함수 이용해서 공백 제거 replace 함수는 문자를 바꿔주는 함수인데 파이썬에서는 공백도 문자로 취급하기 때문에 replace함수를 적용할 수 있습니다. 쓰는 방식은 문자열.replace(없앨 문자,바꿀 문자) 입니다. 공백은 " "으로 되어 있습니다. 이를 ""으로 바꾸면 됩니다. replace는 기존 데이터에 반영이 안되므로 새로 정의를 해주어야 합니다. str = ' A B C D ' new_str = str.replace("..
matplotlib로 그린 그래프 축 없애는 방법입니다. 그래프를 보기 좋게 만들기 위해서 축을 없애거나 축 범위만 없애고 싶으면 다음과 같이 합니다. x,y는 0~10 숫자로 구성하였습니다. x = np.linspace(0,9,11) y = [2*i for i in x] 축 범위 없애기 x,y 축의 범위만 없애고 싶다면 gca().axes.axis.set_visible(False) 를 수행합니다. x축을 없애고 싶으면 xaxis를 y축을 없애고 싶음면 yaxis를 입력합니다. # x범위 없애기 plt.subplot(1,2,1) plt.plot(x,y) plt.gca().axes.xaxis.set_visible(False)#x범위 없애기 plt.title('x-axis del') # y 범위 없애기 pl..
conda 작업을 할 때 아래와 같은 오류가 뜰 때가 있습니다. Solving environment: failed with initial frozen solve. Retrying with flexible solve. 주로 무엇을 설치하다가 위 오류처럼 뜨고 안 되는데 기다리면 conda에서 알아서 다른 방법으로 여러번 시도를 합니다. 그러다가 잘 설치가 완료되면 좋을텐데 안될 수 있습니다. 그 원인은 아래 내용을 확인하시기 바랍니다. 오류 원인 및 해결 방법 위 오류가 무사히 넘어가지 않아 모듈 설치가 안 되었다면 conda가 최신 버전이 아닌가? 를 생각하면 됩니다. 보통 conda를 모듈 사용하는 도구로써 사용하기 때문에 최근에 새로만든 모듈이거나 패키지라면 예전 버전의 conda와의 호환이 안 될 ..
cheatsheet란 컨닝지라고 하는데 컨닝하는데 쓸 정도로 자주 사용하는 명령이나 기능을 쉽게 잘 정리한 인포그래픽을 말합니다. 일종의 요약본입니다. 코드는 특히나 자꾸 까먹습니다. 코드는 각각의 규칙들이 존재하고 그에 맞춰 써야하는데 양이 많기도 해서 다 외우기가 너무 어렵습니다. 그래서 cheatsheet를 만들어 한눈에 익히는데 도움을 주고자 만든 것들이 종종 있습니다. 판다스 cheatsheet 라고 코드를 한번에 요약해 놓은 인포그래픽이 나와서 공유하려고 합니다. 물론 판다스를 쓰는 기본적인 방법이나 경험들이 있어야 이해를 할 수 있을 것 같긴 합니다. 응용력을 가지고 있어야 하고 cheatsheet 말 그대로 문법을 정리만 해놓은 것입니다. 모든 문제가 해결되는 만능이 아님을 강조하고 또 강..
데이터 프레임을 리스트로 변환하는 방법입니다. 데이터 프레임도 굳이 리스트로 바꾸는 이유는 머신러닝이나 딮러닝을 할 때 리스트로 input 값을 넣어야 할 때가 있습니다. 근데 데이터 전처리는 판다스가 훨씬 효과적이기 때문에 전처리 후 리스트 형태로 바꾸어 input값으로 쓸 수 있습니다. 데이터프레임에서 column별로 가져오면 되지 않느냐?라고 반문할 수도 있지만 머신러닝이나 딮러닝 처리중 계산 때문에 불가할 수 있고 여러 클래스인경우 벡터화해서 계산하는 것이 훨씬 빠르기 때문에 ndarray로 바꾸는 게 용이합니다. 데이터프레임에서 리스트와 numpy 배열로 변환하는 방법을 알려드리겠습니다. 데이터는 머신러닝 연습용으로 많이 쓰는 꽃 분석 데이터인 iris로 하겠습니다. import pandas a..
참고사항 115버전부터는 운영하는 사이트가 바뀌어서 ChromeDriverManager 가 되지 않습니다. 아래 포스팅을 참고하시기 바랍니다. [Python/웹크롤링] - 크롬드라이버 자동 오류 해결(115버전부터 사이트가 바꼈어요) 파이썬에서 크롬 브라우저 컨트롤을 하기 원한다면 즉, chrome-driver를 사용하려면 chrome과 버전이 맞게 chrome-driver를 설치해야 합니다. 그런데 chrome 업데이트가 이루어지면 버전호환이 안되서 다시 깔아야 하는 불편함이 있습니다. 매번 폴더나 작업환경이 바뀌면 일일히 chrome-driver를 설치해야 하고 설치할 때마다 chrome 버전을 확인해야 합니다. 그래서 chrome-driver를 따로 설치하지 않고 사용하는 방법을 알려드립니다. 아래..
리스트를 저장하는 방식은 pickle이 가장 유명한데 pickle은 갱신이 안되고 덮어쓰는 것만 됩니다. 만약 갱신한 리스트를 저장하고 싶다면 파일을 덮어쓰던가 새로운 파일로 저장해야 합니다. 그렇지만 csv로 저장하면 갱신이 가능합니다. pickle이 아닌 csv로 저장하는 방법에 대해 알려드립니다. pickle에 대한 방법은 다음 포스팅을 참고하시기 바랍니다. [Python] 딕셔너리,리스트 저장하기(pickle) [Python] 딕셔너리,리스트 저장하기(pickle) 코딩을 해서 어떤 데이터를 리스트나 딕셔너리를 만들었을 때 그것을 따로 저장하지 않고 나중에 다시 작업을 하면 컴퓨터가 코딩작업을 다시 하게 되어서 기다리는 시간이 생기게 됩니다 시간 seong6496.tistory.com 리스트를 c..
파이썬을 통해 파일을 저장하거나 불러올 때 파일 모드에 알고 있다면 보다 편리하게 파일을 저장,불러오기를 할 수 있습니다. 그전에 파일의 형태인 바이너리 모드와 아스키 모드를 먼저 짚고 넘어가겠습니다. 아스키 /바이너리 모드 파일의 형태는 크게 아스키 모드와 바이너리 모드로 되어있습니다. 아스키 모드는 텍스트 편집기(메모장, 한글 등)를 통해 파일의 내용을 확인할 수 있는 파일을 의미하고 그렇지 않은 파일들을 바이너리로 여기시면 됩니다. 쉽게 말해, 그림파일을 텍스트 편집기에서 텍스트 형태로 불러오면 안 불러지거나 이상한 문자들로 구성되어서 있는 걸 확인할 수 있습니다. 이런 경우 바이너리 파일이라고 생각하면 됩니다. 바이너리의 형태를 생각하면 파이썬에서는 바이너리 모드로써 불러야 하는 것이 있고 아닌 ..
리눅스 우분투에서 아나콘다 설치방법입니다. 윈도우는 설치파일 받아서 설치하면 path도 자동으로 설정해주고 간단하게 마무리가 됩니다. 반면에, 리눅스에서는 설치파일을 받는 것까지는 쉬우나 그 이후부터는 리눅스 환경에서 직접 설치명령을 내려주어야 합니다. 설치 파일 받기 다음 사이트에서 아나콘다를 받습니다. https://www.anaconda.com/products/distribution Anaconda | Anaconda Distribution Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com..
seaborn color 팔레트 설정하는 방법입니다. 일단 컬러맵을 직접 설정하는 방법도 있는데 이는 이전에 포스팅으로 해놨습니다. 참고하시기 바랍니다. [python] heatmap 색상바꾸기(컬러맵 만들기) heatmap 글을 쓰다보니 양이 많아 포스팅을 새로 합니다. 데이터는 heatmap 그리기 포스팅에서 했던 예제를 그대로 쓰겠습니다. import pandas as pd import matplotlib.pyplot as plt import numpy as np data =.. seong6496.tistory.com 개인적으로는 seaborn에 괜찮은게 많으니깐 전문가가 아니면 갖다쓰는게 좋지 않을까 싶습니다. 팔레트 불러오기 먼저 seaborn에서 팔레트를 불러오려면 color_palette()..
matplotlib를 이용한 boxplot 그리는 방법입니다. boxplot에 나타내는 수치는 다섯가지로 다음 수치를 기반으로 그려집니다. 최소값 : 데이터의 0% 지점 제 1사분위 수(Q1) : 데이터의 25% 지점 제 2사분위 수 또는 중위수(Q2) : 데이터의 50% 지점 제 3사분위 수(Q3) : 데이터의 75% 지점 최대값 : 데이터의 100% 지점 이 값들로 그려진 boxplot에서 데이터를 크기순으로 나열했을 때의 분포지점과 이상치를 알 수 있습니다. 이상치는 $ Q3+1.5*IQR $ 보다 크거나 $ Q1-1.5*IQR$ 보다 작은 수로 나타냅니다. 여기서 IQR은 사분위수 범위로 Q3-Q1로 계산된 값입니다. 이상치로 판별된 데이터는 boxplot에서 점으로 나타나게 됩니다. matplo..
리스트의 각 원소의 타입을 바꾸는 방법입니다. 이건 사실 각 원소의 타입을 하나로 통일하는 방법이라 보시면 됩니다. 파이썬의 내장함수인 map 함수를 이용하면 간단하게 할 수 있습니다. 보통 숫자가 문자열로 되어있는 경우를 바꾸고 싶을 때 한번에 할 수 없는 방법을 찾을텐데 map을 이용해 간단하게 바꿀 수 있습니다. 문자열 숫자로 바꾸기 당연한 얘기겠지만 a,b,c,d 같은 완벽히 문자인 경우에는 숫자로 바꿀 수 없습니다. 숫자인데 문자열로 되어있는 경우에만 가능합니다. list_ = ['1','2','3','4'] list_int = list(map(int,list_)) list_int 실제로 타입이 잘 바뀌었는지 살펴보겠습니다. for element in list_int: print(type(ele..
개발이나 코딩 주석을 넣을 때 쓰기도 하고 티스토리나 github 등에서도 호환가능한 마크다운에 대한 설명내용입니다. 마크다운은 html의 기능을 모두 대체할 수는 없지만 html을 몰라도 간단하고 손쉽게 문서를 쓸 수 있는 점에서 큰 장점을 가지고 있습니다. html의 보조적인 역할을 할 수 있어서 html을 안다면 큰 시너지를 주기도 합니다. 티스토리 블로그에 포스팅하려고 했으나 티스토리 내에도 마크다운 호환이 가능해 제가 쓰고 있는 스킨과 겹쳐 제대로 표현이 안되는 문제가 발생했습니다. 그래서 마크다운으로만 운영되는 github 블로그에 옮겨 놓았습니다. 왠만하면 외부링크를 안 걸려고 노력하고 있는데 어쩔 수가 없네요 링크를 걸어둘테니 내용이 필요하신 분은 아래 링크로 들어오면 해당 설명을 볼 수 ..