Python 11

파이썬 클린 코드 (2) - 파이썬스러운 코드 (1/2)

요즘 파이썬 클린코드(마리아노 아나야 지음) 라는 책을 읽고 있다. 한 챕터씩, 책을 읽으며 내가 이해한 대로 요약 및 정리를 해보도록 하겠다. 목차 1. '파이썬' 스러운 코드란? 2. 파이썬스러운 코드 1 - 인덱스와 슬라이스 2-1. 슬라이스(slice)의 동작 원리 2-2. 자체 시퀀스를 생성하는 방법 3. 파이썬스러운 코드 2 - 컨텍스트 관리자 3-1. 파이썬 스러운 방법으로 컨텍스트 관리자 구현 방법 (1) with 3-2. 파이썬 스러운 방법으로 컨텍스트 관리자 구현 방법 (2) __enter__, __exit__ 매직 메소드 구현 3-3. 파이썬 스러운 방법으로 컨텍스트 관리자 구현 방법 (3) decorator 활용 1.' 파이썬'스러운 코드란? 모든 언어는 해당 언어로 작업을 처리하는..

파이썬 클린코드 (1) - 코드 포매팅과 도구

요즘 파이썬 클린코드(마리아노 아나야 지음) 라는 책을 읽고 있다. 한 챕터씩, 책을 읽으며 내가 이해한 대로 요약 및 정리를 해보도록 하겠다. 목차 1. 클린코드란? 1-1. 클린코드의 중요성 1-2. 클린코드를 위한 코드 포맷팅 2. 클린 코드를 위한 방법 - 문서화 2-1. Docstring 2-2. Annotation 3. Annotation은 Docstring을 대체하는 것일까? 4. 클린 코드를 위한 방법 - 도구 설정 5. 1장 요약 1. 클린코드란? 코딩 표준, 포맷팅, 린팅 도구나 다른 검사 도구를 사용한 코드 레이아웃 설정과 같은 것 그 이상을 의미한다. 즉, 품질 좋은 소프트웨어를 개발하기 위해 견고하고 유지보수가 쉬운 시스템을 만들기 위한 요소다. 1-1. 클린코드의 중요성 소프트웨..

Python 클린 코드(Clean Code) 작성 방법 정리 및 고찰 (1)

더 나은 파이썬 코드를 작성하기 위한 11가지 팁과 요령이라는 유튜브를 시청했다. 시청한 내용에 대해서 정리를 해보고자 한다. 1. range(len(x)) 를 enumerate 로 변경하자. 만약 idx와 item 으로 모두 추적할 경우, enumerate 를 사용하는 것이 간결하고 좋다. range를 쓰면 len 함수를 추가로 불러와야 하고, 각 원소의 자료구조의 인덱스로 직접 접근해야 한다. 하지만 enumerate는 인덱스와 item을 하나의 튜플 단위로 묶어 출력하기 때문에, 훨씬 pythonic 하다. 변경 전 코드 data = [1,2,3,4] for i in range(len(data)): if data[i]

Python Error - most likely due to a circular import 해결

aiokafka consumer 를 개발하는 과정에서 most likely due to a circular import 에러를 접했다. 원인은 되게 허무+간단했다. 해당 에러는 모듈 import 시 작업 폴더 내 모듈과 동일한 파일명이 존재하기 때문에 발생한다. 내가 실행하고자 했던 파일명이 aiokafka.py 였고, 그 안에 import aiokafka 명령이 실행되고 있었기 때문에, 이름이 충돌하여 발생한 이슈다. 따라서, aiokafka.py 파일 명을 다른 이름으로(나의 경우 aiokafka_consumer.py로 변경하였다.) 변경하면 문제없이 실행되는 것을 확인할 수 있다.

Kafka Consumer 애플리케이션 개발 - Python (Local Server 기반)

해당 프로젝트는 로컬 서버를 기반으로 카프카 프로듀서 애플리케이션을 개발하는 프로젝트에 대한 포스팅이다. 컨플루언트 기반 클러스터에서 카프카를 실행하기 전, 카프카의 동작 원리를 이해하기 위해 로컬에 직접 설치 및 실행해보았다. 목차 Python Consumer 개발 01. Python Consumer 개발 1-1. 개요 앞선 포스팅에서, 카프카를 로컬에 설치하는 방법 그리고 해당 로컬에서 카프카, 주키퍼 서버를 띄우는 방법에 대해 알아보았다. 그리고 kafka-python을 이용해 카프카 프로듀서를 띄워보았다. 이전 포스팅 링크 https://eng-sohee.tistory.com/136 Local Server 기반, Kafka Producer 애플리케이션 개발 - Python 해당 프로젝트는 로컬 서..

Kafka Producer 애플리케이션 개발 - Python (Local Server 기반)

해당 프로젝트는 로컬 서버를 기반으로 카프카 프로듀서 애플리케이션을 개발하는 프로젝트에 대한 포스팅이다. 컨플루언트 기반 클러스터에서 카프카를 실행하기 전, 카프카의 동작 원리를 이해하기 위해 로컬에 직접 설치 및 실행해보았다. 목차 카프카 로컬 설치 서버 실행 Python Producer 개발 01. 카프카 로컬 설치 카프카 설치를 위해서는 공식 사이트를 이용해 파일을 다운로드 받아야 한다. 아래 공식다운로드 홈페이지 링크를 통해 접속하여, 파일을 다운받는다. 난 여기서 kafka_2.13-3.0.0 버전을 다운받았고, 해당 압축을 풀어주었다. https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Pla..

05. 데이터 시각화

파이썬에서 데이터를 시각화하는 방법은 여러 방법이 존재한다. 우선, 라이브러리도 seaborn 이나 matplotlib 와 같은 대표적 시각화 툴이 있고, 아니면 shap이나 pdp와 같이, 모델링 이후 시각화를 할 때 사용하는 라이브러리 등이 존재한다. 오늘은 다양한 라이브러리들 중, 가장 범용적으로 사용하는 seaborn과 matplotlib 정리를 해 보았다. 히트맵, box플롯, scatter플롯, FacetGrid 차트 등 자주 사용하는 차트들을 살펴 보겠다. 막대 그래프 등은 너무 단순해서 이번 포스팅에서는 취급하지 않았지만, 추후 모델링 시 포스팅 할 예정이다. 또한 pdp나 shap 과 같은 시각화 라이브러리는, 자주 사용하지는 않으므로 이번 포스팅에서 다루지 않는다. 그러나 이후 모델 분..

04. String Manipulation

String Manipulation이란, 문자열 데이터 형태 및 타입 등을 변환하는 것 오늘은 파이썬을 활용해 String Manipulation을 수행해 볼 것이다. 이는 데이터 분석 수행에서 필수적으로 행하는 것 중 하나다. String 데이터를 처리할 때는, 웬만해선 데이터 통일화 작업이 요해지기 때문이다. 그 중에서도 SM에 가장 많이 쓰이는 함수(Replace, Apply, Split)를 이용해 문자열 데이터의 형태 & 타입을 변환하는 예시를 학습/정리할 예정이다. 목차 특정 데이터타입의 컬럼값만 추출하여, 데이터 형태 및 타입 변경 describe를 통한 summary statistics In [ ]: # 필요한 라이브러리를 import 합니다. import pandas as pd import..

05. map 에러 해결 방법

목차 Map Map 에러발생 01. Map Map은 파이썬의 내장함수로, 리스트의 요소를 지정된 함수로 처리해주는 함수다. 이는 매우 자주 사용되며, 예시는 아래와 같다. 그런데, 사실 내가 map을 설명하는 이유는 아래 에러설명을 위해서다. (내가 자주 까먹기 때문에...!)예시(아래)와 같이 코드를 작성하면 TypeError가 발생한다. 02. Map 에러발생 ⚠️ TypeError: map() must have at least two arguments. 2-1. 에러발생코드 def solution(num): num_square = list(map(lambda x: x*x, num) ) print(num_square) answer=[] for i in num_square: if i % 2 == 0: ..

03. 데이터 셋 병합 (Concat, Merge)

안녕하세요 한소희입니다. 공부를 통해 배운 내용을 작성하고 있습니다. 혹여 해당 포스팅에서 잘못된 부분이 있을 경우, 알려주시면 빠르게 수정 조치하도록 하겠습니다. 감사합니다. 데이터 분석을 할 때면, 데이터 셋을 병합해야 하는 일이 종종 생긴다. 왜냐하면 대부분의 데이터셋은 예쁘게 한 개의 세트 형태로 제공되지 않기 때문이다. 물론, 캐글이나 데이콘 같은 곳에서 제공하는 데이터는 예쁘게 잘 정제되어 있지만, 실제 현업에서 마주하는 데이터는 그렇지 않다. (어쩌다 알게 되었냐고요? 저도 알고 싶지 않았습니다.. 따흑. 데이터 처리 스킬이 부족한 시절, 실습생 때 데이터 셋을 병합할 때 꽤나 골머리를 앓았던 것으로 기억한다. 데이터의 무결성 이슈 때문에..) 여튼, pandas에서는 이 데이터들을 병합하는..