Python 14

python - pandas apply를 사용한 데이터 수정 with lambda

pandas를 사용해서 데이터를 다룰 때 구성된 데이터의 하나의 컬럼 데이터를 통째로 연산해야 하거나 변환해야하는 경우가 생기게 됩니다. 이때 사용하면 유용한 pandas 함수 apply를 알아봅시다 우선 데이터를 생성해 볼까요? 데이터 셋 생성 import pandas as pd # 예제 데이터프레임 생성 data = { '이름': ['홍길동', '이순신', '박보영'], '나이': [25, 40, 33], '부모의 나이 평균': [55, 62, 63], '도시': ['서울', '부산', '대구'] } df = pd.DataFrame(data) 다음과 같은 테이블을 생성 했습니다. 여기서 처음 시도해 볼 것은 이 유저의 나이를 1씩 더하는 작업을 진행하게 될겁니다 단일 Column 수정 - 유저의 나이..

Python 2024.03.12

Python - Anaconda를 활용한 가상환경 생성

아나콘다를 활용해서 가상환경을 생성 해 보자. >conda create -n python= 위 명령어를 실행하게 되면 아래와 같은 가상환경에 기본적인 라이브러리 설치에 대한 동의 절차가 실행 된다. Y를 선택해서 가상환경을 생성한다. conda activate 위 명령어를 사용해서 가상환경을 활성화 하고 pip를 이용해서 다양한 라이브러리를 설치 관리할 수 있다.

Python 2022.06.15

Python - bytes를 String으로 변환하는 방법

utf-8으로 encoding된 bytes를 String으로 다시 변환해야할 때가 있습니다. bytes를 string으로 decoding하는 방법을 소개합니다. string.decode()를 이용한 방법 str()을 이용한 방법 string.decode()를 이용한 방법 string.decode(encoding)으로 bytes를 string으로 변환할 수 있습니다. bytes가 encoding될 때 사용된 타입을 인자로 전달하면 됩니다. # bytes bytes = b'Hello world, Python' print(bytes) print(type(bytes)) # decode bytes to string result = bytes.decode('utf-8') print(result) print(type..

Python 2022.06.15

Python - Pandas read_csv 'utf-8' codec can't decode byte 0xb3 in position 19: invalid start byte ERROR 해결

'utf-8' codec can't decode byte 0xb3 in position 19: invalid start byte Pandas에서 read_csv를 사용할때 csv에 한글이 포함되어 있고 Encoding이 utf-8로 구성되어 pandas를 이용하여 파일을 읽을때 발생하는 에러입니다. 해결법은 매우 간단 합니다. Encoding을 다시 해서 불러주면 되는데 아래 예제 코드를 사용해 봅니다. import pandas as pd df = pd.read_csv("data.csv", encoding='cp949') cp949 encoding 방식은 한글 관련 인코딩 방식으로 이를 사용하여 불러오기를 진행하면 에러 없이 진행이 가능합니다.

Python 2021.10.28

Python - Jpype1 버전 변경하기

이글은 Konlpy의 설치 과정중 일부를 포함하고 있습니다. Konlpy를 설치하고 실행하려면 Jpype1의 버전을 변경해야 합니다. 그 이유는 konlpy를 설치할때 Jpype1을 종속성으로 설치하게 되는데 이때 설치되는 Jpype1의 버전은 1.3 사실 이 버전이 문제가 되는것이 아니라 저 라이브러리가 각 파이썬 버전마다 호환성이 달라서 문제가 됨으로 각 파이썬 버전에 맞는 라이브러리를 무려.. 수동으로 설치해야 합니다. 우선 Uninstall 부터 진행합니다. 설치되어 있는 파이썬의 Cmd에서 pip uninstall jpype1 그리고 아래 페이지에서 내 파이썬 버전에 맞는 Whl파일을 받아 둡니다. https://www.lfd.uci.edu/~gohlke/pythonlibs/#jpype Pyth..

Python 2021.10.24

java.nio.file.invalidpathexception: illegal char <*> at index 84 문제 해결 - konlpy, jpype

굉장히 매우 많은 삽질이 행해졌다. 우선 환경부터 현재 파이썬의 버전은 Python 3.9.6 버전으로 설치 되어 있습니다. Konlpy를 이용해 형태소 분석을 진행하려던 중 JAVA Home 설정을 마치고 딱 실행을 시키면 이 문제에 직면하게 됬습니다. 각종 블로그에서 안내하는 방법을 참고하자면 jpype1의 버전이 현재 Python버전과 호환이 되지 않아 발생했다고 합니다. 그래서 버전에 맞는 jpype1을 설치하라고 해서 whl파일을 이용한 수동 설치를 감행했으나 실패하여 이 글을 적어봅니다. 1. Uninstall Jpype1 - pip uninstall jpype1 이것을 입력하여 현재 설치 되어 있는 jpype를 제거해 줍니다. (현재 코드를 실행했다면 꼭 Restart를 눌러 사용중인 라이브..

Python 2021.10.23

Python - DataFrame Column 이름 변경

이번에 알아볼 내용은 Dataframe의 Column 이름 변경을 해보도록 하겠습니다. 굉장히 많이 쓰이는 기능인데.. 저는 매번 바꿀 때마다 까먹어서 포스팅을 작성해서 기억에 좀 넣어보도록 하겠습니다. 이번에도 코드를 보며 진행해보도록 합니다. # Pandas 로딩 import pandas as pd # Dataframe 생성 df = pd.DataFrame({ 'a': [4, 5, 6], 'b': [7, 8, 9], 'c': [10, 11, 12]}, index = [1, 2, 3] ) # 첫번째 방법 df.columns = ["d", "e", "f"] df #두번째 방법 df.rename(columns = {'d' : 'a', 'e':'b', "f":"c"}, inplace = True) df 이렇..

Python 2021.09.11

Python - 예외처리 Try / Except

이번 글에서는 파이썬의 예외처리 기능을 한번 적어본다. 우리가 코드를 실행할때 많은 에러가 발생하는데 이것을 우리가 넘겨도 되는 에러인지. 아닌지 혹은 에러가 발생한다면! 이라는 조건(분기)을 걸고 싶을 때 사용할 수 있다. 먼저 예제 코드부터 알아보자. # 리스트 생성 num_list = [1,2,3,4,5,6,7,8,9,10] for i in range(15): print(num_list[i]) # 결과는?? 결과는 1~ 10까지 숫자를 프린트 하고 범위가 넘어갔다는 OUT OF RANGE 같은 에러가 발생할 것 이다. 하지만 나는 이 에러가 발생해도 코드가 진행 되기를 원한다는 가정하에 아래 코드를 한번더 살펴 보도록 하겠다. # 리스트 생성 num_list = [1,2,3,4,5,6,7,8,9,1..

Python 2021.09.11

Python - 코드 실행시간 확인

중간중간 코드를 실행하면서 부분적인 코드의 실행 시간을 확인이 필요할 때가 있는데. 그럴때 사용하는 코드이다. 매우 간단해서 긴글 보다는 코드로 설명하도록 하겠다.. import time start_time = time.time() sum = 0 for i in range(5) sum = sum + i end_time = time.time() print(f"실행시간 : {end_time - start_time}" 이렇게 0~ 4까지 더하는 반복문을 하나 실행하는데 걸리는 시간을 time 라이브러리를 이용하여 time.time()을 부르게 되면 이 매서드를 실행할 때 시간이 기록된다. 이를 이용해서 시작 그리고 종료의 값을 각각 저장하고 이를 빼주어 실행시간을 확인 할 수 있다.

Python 2021.09.11