판다스(Pandas)에서 조건에 맞는 행 제외하는 방법판다스를 활용하다 보면 특정 조건에 맞는 행만 선택하거나 제외해야 하는 상황이 자주 발생합니다. 이 글에서는 판다스에서 특정 조건에 맞는 행을 제외하는 방법을 여러 가지 예제를 통해 살펴보겠습니다. 데이터 분석과 전처리 과정에서 매우 유용한 테크닉이니 꼭 알아두세요!조건에 맞는 행 제외하기: 기본 원리판다스에서 조건에 맞는 행을 제외하려면 부울 인덱싱(Boolean Indexing)과 ~ 연산자를 사용합니다. ~는 조건을 반전(negate)시켜 해당 조건에 맞는 행을 제외하도록 도와줍니다. import pandas as pd데이터프레임 생성data = {'이름': ['Alice', 'Bob', 'Charlie', 'David'],'나이': [25, ..
딕셔너리 컨프리핸션파이썬은 코드의 간결함이 가장 큰 장점이요. 이전 포스팅에서 컴프리핸션(list comprehension) 작성요령만 써놨는데 이번 포스팅에서는 딕셔너리 컴프리핸션에 대해 더 써볼까 합니다.기본 문법딕셔너리 컴프리핸션은 한 줄의 코드로 for문이 딕셔너리 안에서 작동할 수 있게 해주는 문법입니다. 기본적인 문법은 다음과 같습니다.{키_표현식: 값_표현식 for 요소 in 반복 가능 객체 if 조건식}키_표현식 : 딕셔너리의 키로 사용할 값.값 표현식 : 딕셔너리의 값으로 사용할 값.반복 가능 객체 : 리스트, 튜플, 문자열, 또는 range와 같은 반복 가능한 객체조건식(선택) : 특정 조건을 만족하는 경우에만 요소 포함.딕셔너리 컴프리핸션의 장점가독성 향상 : 코드가 간결해져 읽기 쉬..
webp to pngwebp 파일은 웹에서는 아주 가볍고 무손실 및 손실 압축 모두에서 투명도를 지원합니다. 웹사이트에서 퍼포먼스가 좋지만 호환성이 좋질 못합니다. 아직은 webp의 쓰임이 많지 않고 png를 많이 쓰고 있습니다.png 파일도 webp보다는 효율적이진 않지만 무손실 압축이 가능합니다. 그렇지만 호환성이 가장 좋습니다.호환성 때문에 webp을 png로 바꿔야 하는 경우가 생깁니다.특히, 운영체제 내에서는 png가 훨씬 쓰임이 많아서 webp을 웹사이트에서 가져오면 바꿔야하는 것이죠. cloudconvert라는 곳을 가면 바꿔줍니다. 단, 5장 제한이 있습니다.회원가입시에는 20장까지는 가능합니다.https://cloudconvert.com/png-to-webp PNG to WEBP | Cl..
Numpy 차원 이해하기일전에 Numpy 축에 관한 포스팅을 했었는데 그보다 더 개념적인 얘기를 할까 합니다.Numpy는 다차원 배열을 다루는만큼 수치계산을 한꺼번에 처리할 수 있도록 도와주는 효율적인 라이브러리입니다. Numpy는 다차원 배열을 차원으로 분류했는데 데이터 구조를 표현하는데 있어서 중요한 역할을 합니다.Numpy 차원 정의차원의 종류Numpy에서 차원은 축이라고도 불리기도 합니다. 우리는 보통 3차원을 쓰기 때문에 그렇기도 한데요. 엄밀히 따지면 차원과 축은 포커싱된 부분이 다릅니다. 차원은 깊이에 더 포커싱이 되어있습니다. 차원은 배열의 층이 얼마나 되는지를 정의합니다. 축은 데이터가 나아가는 방향에 초점이 맞춰져 있습니다. 차원내에서 데이터를 어떻게 다룰것인지를 정의합니다.다시말해, ..
빅데이터 분석을 위한 파이썬 목차블로그를 대학원 때 코딩이 너무 헷갈려서 지식 저장공간으로 사용하려고 시작했습니다. 글을 정리하다보니 정말 많은 글을 썼다는 걸 새삼 느낍니다. 한때 블로그가 잘 되서 수익화를 어떻게 할 수 있을지 공부하다보니 현재 제가 하고 있는 방법은 온전히 블로그로 수익화하기에는 거리가 멀다는 걸 알게 되었고 이 글을 볼 사람들보다는 제가 보기 편하게 만들어서 두서도 없었습니다. 그래서 그나마 보기 편하게 만들려면 아예 이렇게 목차로 만들어보면 어떨까 해서 지금까지 공부하고 모아논 것을 버리기는 아까워서 지금까지 쓴 글 중에 주세에 맞는 것만 모아봤습니다.대학원 다닐때는 지식 위주의 글을 열심히 쓴 것 같은데 졸업 이후로는 지식보다는 사람들이 볼만한 글에 초점을 맞추다보니 뒷내용이 ..
pytesseract 설치 너무 헷갈려pytesseract를 설치하면 다라고 생각하고 진행했다가 방황하시는 분들이라면 이 글 보시고 해결하시기 바랍니다. 혼자 이미지 텍스트 추출 해보겠다고 시도했다가 pytesseract 설치하고 아주 구글링을 엄청 했습니다. gpt에서도 정확하게 나오지가 않아서 애를 많이 먹었습니다.tesseract란?tesseract는 ocr 기반으로 된 이미지 인식 기술입니다. 그림 위에 쓰여진 텍스트를 인식하기 위해 많이 사용합니다. 이미지 텍스트 추출 프로그램이나 서비스를 준비한다면 한번쯤은 써보는 프로그램이 tesseract입니다.파이썬에서 tesseract 사용하기먼저 파이썬에서 제공하는 보통 pytesseract를 설치할겁니다.pip install pytesseract이러..
파이썬 회의록을 MS워드 파일로 만드는 방법입니다. MS 워드 파일로 저장하려면 python-docx 라이브러리를 사용합니다.python-docx 라이브러리 설치먼저 python-docx 라이브러리를 설치합니다.pip install python-docx딕셔너리를 Word 문서로 저장하기원리를 설명하기 위해 딕셔너리와 리스트를 어떻게 word문서로 저장하는지 설명하겠습니다.간단한 원리입니다. docx의 Document를 import해 원하는 문장을 add_paragraph() 괄호 안에 써서 합니다. 단, 괄호 안에는 문자열로 넣어주어야 합니다.from docx import Document# 딕셔너리 예시data = { "name": "John", "age": 30, "city": "New..
데이터프레임 컬럼값 타입 확인하고 바꾸기데이터를 외부에서 받아오면 불가피하게 타입이 고르지 못하고 중구난방으로 다운로드됩니다. 이 상태로 데이터프레임으로 전체 행, 열 계산을 하려고 할 때 애를 먹을 수 있습니다. 이번 포스팅은 컬럼값 타입을 확인하고 혹시 다른 타입이 있다면 어떻게 바꿔야 하는지에 대해 소개합니다.컬럼값 타입을 확인하려면 isintance 함수를 알아야 합니다.파이썬 타입 확인 함수 isintance 파이썬에서 데이터타입을 boolean으로 판단하려면 isinstance()함수 사용합니다. isintance는 파이썬의 내장함수라서 따로 설치할 라이브러리가 없습니다. 파이썬이 설치되어 있다면 바로 쓸 수 있습니다. isinstance()는 object(변수나 객체), classinfo(타..
파이썬에서의 ~ 연산자 : 비트 반전과 논리 NOT 연산파이썬에서 ~ 연산자는 비트 반전 연산자(bitwise Not operator)로 사용됩니다. 아마 거의 본적이 없는 연산자인데 아무래도 비트반전을 시킬일이 거의 없기 때문에 관련 개발을 하지 않는 한 모르는 연산자가 아닐까 싶습니다. 비트반전 연산자의 역할은 간단합니다. 비트가 0이면 1로, 1이면 0으로 바꿔줍니다.비트 반전 연산자 예제비트 단위로 각 비트를 반전시키는 역할을 하는데 아래와 같이 반전됩니다.x = 5y = ~xprint(y) # 출력: -6정수 5(이진수 0000 0101)을 반전시켜 -6(이진수 1111 1010)이 됩니다.판다스에서의 사용~ 연산자는 판다스에서는 논리 NOT 연산자로도 쓰입니다. 특정 조건을 부정하는 필터를 ..
파이썬 리스트 같은 원소값 가져오기파이썬에서 두 개 이상의 리스트에서 공통된 원소값만 추출하는 방법입니다.별 게 아닌데 막상 하면 막막할만해서 정리겸 포스팅합니다.for문 이용가장 쉬운 방법은 for문을 이용하는 방법입니다. 직관적으로 코딩을 만들기 좋습니다.list1 = [1, 2, 3, 4, 5]list2 = [4, 5, 6, 7, 8]common_list = []#for문 이용for i in list1: for j in list2: if i == j: common_list.append(j)# in을 활용for i in list1: if i in list2: common_list.append(i)i를 고정하고 j와 맞춰보고 일치한다면 i를 com..
pyautogui 키보드 제어 파이썬 모듈인 pyautogui를 통한 키보드 제어방법입니다. 키보드 제어는 원하는 키를 자동으로 입력하고 떼는 기능만이 전부라서 많은 지식이 필요하진 않습니다. pyautogui 키보드 기능 typewrite() : 키보드에 문자열 입력 press() : 단일 키를 누르고 뗀다 keyDown() : 키를 누르고 있는다. keyUp() : 키를 뗀다. hotkey() : 조합 키를 누른다. write() : typewrite() 와 유사하게 문자열 입력. import pyautogui ## 문자열 입력하기 pyautogui.typewrite('Hello.World!) ## 단일키 누르기 pyautogui.press('ctrl') ## 조합키 누르기 pyautogui.hotk..
업무자동화 pyautogui 반복 작업이 많을 때 자동으로 작업을 알아서 해주면 그것만큼 편한게 없는데 키보드와 마우스 제어가 가능한 pyautogui를 사용하면 반복작업을 스스로 하는 매크로 프로그램을 만들 수 있습니다. 역사 Pyautogui는 2014년 소프트개발자 AI Sweigart(Automate the Boring Stuff with Python 책으로 유명하신 분) 에 의해 만들어졌습니다. 반복 작업을 자동화하기 위해서 만들어졌는데 현재 상당히 인기있는 모듈이 되었습니다. 설치방법도 간단합니다. 터미널에서 다음과 같이 입력하면 설치할 수 있습니다. pip install pyautogui pyautogui 기능 pyatugui의 주된 기능은 다음과 같습니다. 마우스 제어 : 마우스 커서를 이..
Matplotlib에서 figure와 axes를 직접 제어하는 방법과 간단한 사용법의 차이 Matplotlib는 그래프를 그릴 때 2가지 방법이 있습니다. figure와 axes를 직접 제어하느냐에 따라 방법이 달라집니다. 직접 제어하면 코딩이 약간 복잡해지지만 관리, 유지보수가 편해지고 그렇지 않으면 바로 그릴 수는 있지만 그래프 갯수가 많아지고 여러가지 스타일을 부여하면 복잡한 코딩이 될 수 있습니다. 간단한 사용법 figure와 axes를 제어하지 않는 방법입니다. 직관적으로 그림을 그릴 수 있습니다. 서브플롯 각각을 설정해서 그래프를 그립니다. import matplotlib.pyplot as plt import numpy as np # 데이터 생성 x = np.linspace(0, 2*np.pi..
Matplotlib으로 초간단 애니메이션 만들기 가장 접근하기 쉬운 matplotlib로 애니메이션 그림을 만드는 방법입니다. 애니메이션은 사실 여러가지 방법이 있을 걸로 아는데 초간단으로 만드는 방법 알려드리겠습니다. plt.pause를 이용하기 matplotlib에는 pause라는 정지 메쏘드가 있습니다. 내가 지정한 시간만큼 정지하고 다음 작업을 진행합니다. pause를 이용해 애니메이션처럼 만들 수 있는데요. for문과 함께 활용하면 쉽게 만들 수 있습니다. 예제로 랜덤으로 정수를 1000천 선택하고 그 선택한 정수를 하나씩 찍는 애니메이션을 만들어보겠습니다. import matplotlib.pyplot as plt import numpy as np import random x_values = [..
동적 계획법이란? 동적 계획법(Dynamic Programming, DP)은 복잡한 문제를 간단한 여러 개의 하위 문제(subproblem)로 나누어 푸는 알고리즘 기법 중 하나입니다. DP는 부분 문제의 결과 값을 저장해놓고 재활용하여 전체 문제를 해결하는 방식으로 동작합니다. 동적 계획법의 조건 DP는 크게 2가지 조건을 만족해야 합니다. 작은 부분 문제들이 반복되어 나타나는 구조여야 합니다. 한 부분 문제에서의 정답이 다른 부분 문제에서의 정답을 결정하는 데 영향을 미쳐서는 안 됩니다. 동적 계획법의 절차 DP 알고리즘은 일반적으로 다음과 같이 세가지 절차를 따릅니다. 주어진 문제를 작은 부분 문제로 분할합니다. 부분 문제의 해결을 위해 이전 단계에서 구한 값을 저장하고 재귀로써 문제를 해결합니다...