판다스(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..
데이터프레임 값 변경하기판다스(Pandas) 데이터프레임에서 특정 값을 원하는 값으로 변경하는 방법은 여러 가지가 있습니다. 이전에 replace로 변경하기에 대한 내용을 포스팅했었는데 비슷한 내용이지만 이번 포스팅에서는 replace 없이 다른 메쏘드를 통해 사용하는 방법을 소개합니다. 1. 특정 조건에 맞는 값 변경하기import pandas as pd# 예시 데이터프레임 생성data = {'A': [1, 2, 3, 4, 5], 'B': [10, 20, 30, 40, 50]}df = pd.DataFrame(data)# 조건을 만족하는 값을 원하는 값으로 변경df.loc[df['A'] == 3, 'B'] = 100df.iloc[2, 0] = 7df loc를 이용해 'A' 열에서 값이 3..
try except 에러라인 출력하기파이썬에서는 try except로 예외 오류 처리를 함으로써 프로그램이 정지되지 않고 무사히 끝내는 장치가 마련되어 있습니다. 에러를 넘기고 무사히 프로그램을 끝낼 수 있어서 너무 좋은데 프로그램 고도화를 위해서는 에러를 일으키거나 어떤 에러가 주로 나오는지 알고 있어야 합니다.이번 포스팅에서는 try except를 이용해 에러를 일으키고 에러라인을 출력하는 방법에 대해 알아보도록 하겠습니다.에러 일으키기파이썬에서 try와 except 블록을 사용할 때, except 블록에서 에러를 다시 발생시키려면 raise 를 사용할 수 있습니다. 이렇게 하면 현재 예외를 다시 던져서 상위 호출 스택으로 전달할 수 있습니다. 나눗셈시 0으로 무언가를 나누면 에러가 발생합니다. 이런..
판다스 두 시리즈가 같은지 판단하기두 시리즈가 동일한지 알아보기 위한 방법입니다. 데이터가 너무 크면 변화를 알아차리기 어렵거나 변화가 있다면 눈으로 확인하기보다 컴퓨터가 해주면 간편하게 할 수 있으니 최대한 활용하려 합니다.equals()equals라는 시리즈 매쏘드가 있습니다. 이 메쏘드는 두 시리즈가 동일하다면 True, 아니면 False를 반환합니다.import pandas as pdseries1 = pd.Series([1, 2, 3, 4])series2 = pd.Series([1, 2, 3, 4])if series1.equals(series2): print("두 시리즈가 동일합니다.")else: print("두 시리즈가 동일하지 않습니다.")== 사용== 통해서도 가능합니다.if (s..
데이터프레임 컬럼값 타입 확인하고 바꾸기데이터를 외부에서 받아오면 불가피하게 타입이 고르지 못하고 중구난방으로 다운로드됩니다. 이 상태로 데이터프레임으로 전체 행, 열 계산을 하려고 할 때 애를 먹을 수 있습니다. 이번 포스팅은 컬럼값 타입을 확인하고 혹시 다른 타입이 있다면 어떻게 바꿔야 하는지에 대해 소개합니다.컬럼값 타입을 확인하려면 isintance 함수를 알아야 합니다.파이썬 타입 확인 함수 isintance 파이썬에서 데이터타입을 boolean으로 판단하려면 isinstance()함수 사용합니다. isintance는 파이썬의 내장함수라서 따로 설치할 라이브러리가 없습니다. 파이썬이 설치되어 있다면 바로 쓸 수 있습니다. isinstance()는 object(변수나 객체), classinfo(타..
csv 모듈을 이용한 딕셔너리 csv로 바로 저장하기딕셔너리 자체를 csv로 넘기는 방법입니다. 사실 판다스로 하면 좋은데 그럼 데이터프레임으로 옮기는 작업이 들어가므로 가공이 들어갑니다. 이 부분을 생략하고 csv에 옮기기 위한 방법입니다.골자는 with으로 csv를 열어서 라인별로 쓰는 방식입니다.values 값이 한개로 되어 있는 경우value의 타입에 따라 약간 달라지는데 문자열이나 숫자인 경우는 writerow를 이용합니다.alphabet_count_dict = { 'a': 0, 'b': 0, 'c': 0, 'd': 0, 'e': 0, 'f': 0, 'g': 0, 'h': 0, 'i': 0, 'j': 0, 'k': 0, 'l': 0, 'm': 0, 'n': 0, 'o': 0, 'p': 0, 'q..
리스트에서 특정 문자열 제거하기리스트에서 특정 문자열 제거하는 방법입니다.리스트는 remove를 사용해서 원소를 제거합니다. 굉장히 쉽죠.그런데 특정 조건에 맞는 원소만 제거하려면 해당 원소를 찾아주어야 합니다.이 부분이 살짝 어려울 수 있는데 생각을 '해당 원소를 찾는다'와 '해당 원소만 제외하고 다시 만든다' 두가지로 생각하면 접근하기 쉬워집니다.해당 원소만 제외하고 다시 만든다해당 원소를 제외하는 방법입니다. 원래 있던 리스트에서 특정 원소를 제외하고 새로운 리스트를 만들어 줍니다.리스트 컴프리헨션 활용리스트 컴프리헨션을 활용해 apple 아닌 원소만 가져옵니다.my_list = ['apple', 'banana', 'orange', 'apple', 'grape']filtered_list = [ite..
파이썬에서의 ~ 연산자 : 비트 반전과 논리 NOT 연산파이썬에서 ~ 연산자는 비트 반전 연산자(bitwise Not operator)로 사용됩니다. 아마 거의 본적이 없는 연산자인데 아무래도 비트반전을 시킬일이 거의 없기 때문에 관련 개발을 하지 않는 한 모르는 연산자가 아닐까 싶습니다. 비트반전 연산자의 역할은 간단합니다. 비트가 0이면 1로, 1이면 0으로 바꿔줍니다.비트 반전 연산자 예제비트 단위로 각 비트를 반전시키는 역할을 하는데 아래와 같이 반전됩니다.x = 5y = ~xprint(y) # 출력: -6정수 5(이진수 0000 0101)을 반전시켜 -6(이진수 1111 1010)이 됩니다.판다스에서의 사용~ 연산자는 판다스에서는 논리 NOT 연산자로도 쓰입니다. 특정 조건을 부정하는 필터를 ..
판다스 시트네임 확인하기빅데이터로 넘어가면 엑셀이나 csv 파일을 불러와서 뭔가 하기가 꺼려집니다. 너무 방대하거든요.특히, 일부 데이터만 필요한 경우, 다 불러올 필요가 없는 경우나 read_excel이나 read_csv를 사용하면 디폴트로 첫번째 시트만 불러와지기 때문에 다른 시트를 가져오려면 해당 시트 네임을 알아야 합니다.파이썬으로 시트 네임만 가져오는 방법을 알려드립니다.먼저, ExcelFile()을 이용해 엑셀 객체를 만들어줍니다.import pandas as pd # Excel 파일 경로 file_path = 'your_excel_file.xlsx' # Excel 파일 객체 생성 excel_file = pd.ExcelFile(file_path) sheet_names를 이용해 시트 확인을..