본문 바로가기

프로그래밍/Python79

[Python] 올림, 내림, 반올림(Ceil, Floor, Round) 이번 포스팅에서는 올림, 내림, 반올림(Ceil, Floor, Round)의 개념과 이를 수행하는 파이썬(Python) 함수를 구현해보자. 1. 반올림(Round) 2. 올림(Ceil) 3. 내림(Floor) 1. 반올림(Round) 1) 정의 반올림 과정은 여러 가지로 설명할 수 있겠지만 나는 0 또는 양수인 경우와 음수인 경우 2가지로 나누어 정의했다. Case 1) 0 또는 양수인 경우 먼저 반올림할 자리수를 정하고 해당 자리를 0으로 바꾸어 준다. 해당 자리에 있던 숫자가 5보다 크거나 같으면 다음 자리에 1을 더하고 그렇지 않다면 내버려 둔다. 예를 들어 양수 2.3을 소수점 첫째 자리에서 올림한다고 해보자. 그러면 올림과정은 아래와 같다. Case 2) 음수인 경우 음수의 경우에는 Case 1.. 2022. 4. 18.
[Python] 파일 크기(용량, 사이즈) 확인하기 - 메가 바이트(MB), 기가 바이트(GB) 등 여러 단위로 파일 크기 확인하기 이번 포스팅에서는 파이썬(Python)에서 파일의 크기(용량, 사이즈)를 알아내는 방법을 알아보고자 한다. 1. 파이썬에서 파일 크기(용량, 사이즈) 확인하기 2. 여러 단위(MB, GB)로 파일 크기(용량, 사이즈) 확인하기 1. 파이썬에서 파일 크기(용량, 사이즈) 확인하기 사람이 코딩을 하다 보면 특정 파일의 크기(용량, 사이즈)를 알고 싶을 때가 있다. 파이썬에서는 os라는 모듈을 이용하면 쉽게 특정 파일의 크기(용량, 사이즈) 알 수 있다. 실제 파일 크기는 os.path.getsize 함수를 사용한다. 이 함수 인자에 파일 크기(용량, 사이즈)를 알고자 하는 파일의 경로를 넣어주면 된다. 그러면 이 함수는 바이트(Byte) 단위로 파일 크기(용량, 사이즈)를 알려준다. import os fil.. 2022. 4. 15.
[Python] 내가 만든 파이썬(Python) 파일(.py) 임포트하기 파이썬은 다른 개발자분들이 만들어 놓은 멋진 라이브러리(또는 패키지)들이 굉장히 많다. 우리는 pip install과 같은 명령을 통해 손쉽게 설치하여 라이브러리(또는 패키지)를 사용한다. 근데 종종 자기가 만들어 놓은 유용한 함수를 한데 모아서 이를 임포트해서 쓸 경우가 있다. 이 경우 쉽게 임포트할 수 있는 방법을 알아보고자 한다(물론 더 쉬운 방법이 있을 수 있다. 모든 방법을 내가 다 알고 있는 건 아니니까 ㅎㅎ). 1. 파이썬(Python) 파일 만들기 2. 임포트 하기 1. 파이썬(Python) 파일 만들기 먼저 아래와 같은 예제용 파이썬 파일을 my_python_file.py 라는 이름으로 만들었다. 두 수를 더하는 함수, 이름과 나이를 입력받아야 하는 사람 클래스(Person)를 만들어 주.. 2022. 4. 5.
[Python] 모듈 경로(Module Path) 알아보기 1. 모듈 경로(Module Path)를 알아야 할 필요성 파이썬 코딩을 하다보면 가상 환경을 자주 쓰게 된다. 왜냐하면 프로젝트별로 설치할 모듈(Module)이 다르기 때문에 이를 프로젝트별로 관리해야 하기 때문이다. 그런데 가끔 여러 가상환경을 설치하다 보니 모듈의 버전이 다르거나 같은 파일명이지만 다른 역할을 하는 파이썬 파일(.py)이 있는 경우 모듈(라이브러리 또는 패키지)이 잘못 임포트 될 수 있다. 따라서 특정 모듈(라이브러리 또는 패키지)이 제대로 임포트 되었는지 확인하기 위하여 해당 모듈의 경로를 알아야할 필요가 있다. 2. 모듈 경로(Module Path) 확인하기 파이썬에서 임프트된 모듈 경로 확인하는 방법은 예상과 달리 너무 쉽다. 그냥 print문 쓰면 된다. 예를 들어 지금 내가.. 2022. 4. 5.
[Python] 함수에 어떤 인자(Argument)가 있는지 알아보기 오랜만입니다. 꽁냥이에요~~ 파이썬 코딩을 하시는 분(꽁냥이도 포함)들은 종종 함수 사용법, 특히 함수에 들어가는 인자(Argument 또는 Parameter)가 무엇인지 또는 클래스가 갖고 있는 메서드가 무엇인지 알고 싶을 때가 있지요. 이 경우 구글링을 해도 되겠지만 파이썬에서 도움말 역할을 하는 함수를 사용하면 더 빠르게 알 수 있어요. 그 주인공은 바로 help라는 함수인데요. 이번 포스팅에서는 help 함수에 대해서 알아보려고 합니다. 아 물론! 지난 포스팅에서 소개한 inspect를 이용해서 알 수도 있어요. 이에 대한 내용은 아래 링크를 통해 확인해보세요. [Python] 함수 내부 코드 가져오기 [Python] 함수 내부 코드 가져오기 반갑습니다~ 꽁냥이입니다~ 코딩을 하다 보면(특히 알고.. 2022. 4. 3.
[Python] 함수 내부 코드 가져오기 반갑습니다~ 꽁냥이입니다~ 코딩을 하다 보면(특히 알고리즘을 구현하려고 할 때) 특정 라이브러리가 제공하는 함수가 어떻게 동작하는지 알고 싶을 때가 있습니다. 이를 위해 함수 내부 코드를 알아야 할 필요가 있지요. 파이썬에서는 inspect라는 모듈을 사용하여 특정 함수 내부 코드를 알아낼 수 있습니다(매우 유용한 기능입니다). inspect 모듈 내 getsource라는 함수를 이용하면 함수 내부 코드를 알아낼 수 있습니다. 예를 들어 넘파이(Numpy)의 평균을 계산하는 함수 내부 코드를 알고 싶다면 다음과 같이 해주세요. 이때 print를 꼭 써주세요. 안 그러면 이스케이프 문자(\n, \t 등)가 그대로 출력되어 가독성이 떨어집니다. import numpy as np import inspect p.. 2022. 4. 3.
[오류 해결] Pandas data cast to numpy dtype of object. Check input data with np.asarray(data) 꽁냥이가 회귀 분석을 하다가 아래와 같은 오류를 발생했어요. Pandas data cast to numpy dtype of object. Check input data with np.asarray(data) 해당 오류는 숫자값이 들어가야 할 자리에 다른 타입의 데이터, 예를 들면 문자열 데이터가 들어와서 발생하는 오류인데요. 아래 예제 코드를 통해서 확인해보겠습니다. import pandas as pd import statsmodels.api as sm df = pd.DataFrame() df['y'] = [1,1,2,3,2,4,5,2,3] df['x1'] = ['3','2','2','4','6','5','7','3','1'] df['x2'] = [3.3,1.2,7.7,3.3,2.1,5.7,7.1,0.3.. 2021. 11. 5.
[Python] 인코딩 확인하기 - chardet 안녕하세요~ 꽁냥이에요. 종종 주어진 문자열의 인코딩을 알아야 할 필요가 있지요. 특히 텍스트 파일을 불러올 때 적절한 인코딩 형식을 지정해야 할 때처럼 말이죠. 파이썬에서 chardet이라는 모듈이 해당 문자열의 인코딩 형식을 알려주는 고마운 친구인데요. 이번 포스팅에서는 chardet의 기본적인 사용법에 대해서 알아보려고 합니다. 1. chardet 모듈이란? 2. 사용법 1. chardet 모듈이란? chardet 모듈은 특정 문자열을 분석하여 인코딩 형식을 예측해주는(탐지하는) 모듈입니다. chardet는 아마도 character + detect을 합친 단어인 것 같아요. chardet 문서에 따르면 탐지할 수 있는 인코딩 형식은 다음과 같다고 합니다. 우리에게 익숙한 EUC-KR 형식도 지원하네.. 2021. 8. 4.
[오류 해결] error tokenizing data. c error : expected 안녕하세요~ 꽁냥이에요. Pandas의 read_csv를 이용하여 텍스트 파일을 읽을 때가 있지요. 이때 분명 텍스트 파일을 열어보면 별문제 없어 보이는데 Pandas의 read_csv를 읽으면 아래와 같은 오류가 나타날 때가 있습니다. error tokenizing data. c error : expected ~~ 1. 오류원인 -라인별 구분자로 분리된 단어의 개수가 다르다- 이런 오류는 텍스트의 각 라인마다 구분자로 구분해놓았을 때 길이가 다르기 때문에 발생합니다. 예를 들어볼까요? 먼저 아래의 데이터를 다운받아주세요. pandas를 임포트하고 위 데이터에서 기본 구분자는 쉼표(,)이므로 따로 구분자를 지정하지 않고 read_csv를 통해 데이터를 읽어줍니다. 이때 아래와 같은 오류가 발생합니다. i.. 2021. 6. 25.
[오류 해결] Pandas - query 실행 오류 "TypeError: 'Series' objects are mutable, thus they cannot be hashed" 안녕하세요~ 꽁냥이에요. 데이터를 테이블 형태로 변환하거나 데이터를 전처리할 때, 그리고 데이터를 추출할 때 Pandas를 많이 사용하지요. 꽁냥이는 특히 데이터 추출할 때 query함수를 사용하는데요. 간혹 null 값, nan 값을 포함하는 행을 추출하려고 할 때 query 함수가 제대로 작동하지 않는 경우가 발생합니다. 한번 살펴볼까요? import pandas as pd import numpy as np data = { 'A':[1,2,3], 'B':[3,np.nan, np.nan] } df = pd.DataFrame(data) 위 데이터프레임에는 nan값이 포함되어 있습니다. 이제 B 열에서 nan을 포함하는 행을 추출해보겠습니다. df.query('B.isna()') 하지만 실행되지 않고 아래.. 2021. 6. 13.

맨 위로