데이터프레임 값 변경하기판다스(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..
파이썬에서의 ~ 연산자 : 비트 반전과 논리 NOT 연산파이썬에서 ~ 연산자는 비트 반전 연산자(bitwise Not operator)로 사용됩니다. 아마 거의 본적이 없는 연산자인데 아무래도 비트반전을 시킬일이 거의 없기 때문에 관련 개발을 하지 않는 한 모르는 연산자가 아닐까 싶습니다. 비트반전 연산자의 역할은 간단합니다. 비트가 0이면 1로, 1이면 0으로 바꿔줍니다.비트 반전 연산자 예제비트 단위로 각 비트를 반전시키는 역할을 하는데 아래와 같이 반전됩니다.x = 5y = ~xprint(y) # 출력: -6정수 5(이진수 0000 0101)을 반전시켜 -6(이진수 1111 1010)이 됩니다.판다스에서의 사용~ 연산자는 판다스에서는 논리 NOT 연산자로도 쓰입니다. 특정 조건을 부정하는 필터를 ..
동적 계획법이란? 동적 계획법(Dynamic Programming, DP)은 복잡한 문제를 간단한 여러 개의 하위 문제(subproblem)로 나누어 푸는 알고리즘 기법 중 하나입니다. DP는 부분 문제의 결과 값을 저장해놓고 재활용하여 전체 문제를 해결하는 방식으로 동작합니다. 동적 계획법의 조건 DP는 크게 2가지 조건을 만족해야 합니다. 작은 부분 문제들이 반복되어 나타나는 구조여야 합니다. 한 부분 문제에서의 정답이 다른 부분 문제에서의 정답을 결정하는 데 영향을 미쳐서는 안 됩니다. 동적 계획법의 절차 DP 알고리즘은 일반적으로 다음과 같이 세가지 절차를 따릅니다. 주어진 문제를 작은 부분 문제로 분할합니다. 부분 문제의 해결을 위해 이전 단계에서 구한 값을 저장하고 재귀로써 문제를 해결합니다...
Java IDE : EclipseJave IDE로 보통 이클리스(Eclipse)나 인텔리제이(IntelliJ IDEA)를 많이 씁니다. 이클립스는 무료이고 인텔리제이는 유료로 전환되어 Ultimate 버전 유료만 제공하고 있습니다. 이번 포스팅에서는 무료로 쓸 수 있는 이클립스 설치방법을 알려드리겠습니다. 이클립스를 설치하려면 JDK가 먼저 설치되어있어야 하는데요. 그에 대한 내용은 아래 포스팅을 참고하시기 바랍니다.단계 1: Eclipse 다운로드Eclipse를 다운로드하려면 Eclipse 공식 웹사이트 (https://www.eclipse.org/downloads/)에 접속합니다. 홈페이지에서 "Download" 를 클릭합니다단계 2: 설치 파일 다운로드 및 선택설치파일을 실행하면 아래 그림처럼 뜹니..
Java 개발을 시작하기 위한 필수 단계 자바로 개발하려면 먼저 JDK(Java Development Kit)를 설치해야 합니다. JDK는 자바 언어를 컴파일하고 실행하는 데 필요한 핵심 도구와 라이브러리를 제공합니다. 이 블로그 글에서는 JDK 설치 방법을 알려드리겠습니다. 참고로 윈도우 기준입니다. 단계 1: JDK 다운로드 Oracle의 공식 JDK 다운로드 페이지(https://www.oracle.com/java/technologies/javase-downloads.html)에 접속합니다. "Java Platform (JDK)" 섹션에서 원하는 JDK 버전을 선택합니다. 일반적으로 최신 버전을 선택하는 것이 좋지만 17버전 이상은 큰 문제가 없으니 원하는 것을 받으시면 됩니다. 단계 2: JDK ..
리스트를 복사하는 이유 파이썬으로 데이터분석에서 가장 중요한게 데이터입니다. 데이터를 보존해놔야 다른 모델을 쓰거나 다른 아이디어를 적용할 수 있기 때문에 반드시 복사를 해놔야합니다. 가끔 리스트로서 데이터를 가지고 있을 때가 있는데 다른것도 마찬가지겠지만 코드 진행을 하다보면 리스트 내용이 바뀌면서(다중 참조) 어그러지기 때문에 원본 구분을 잘 해놓는게 중요합니다. 리스트 복사하기 슬라이싱을 사용한 복사 보통 copy 매쏘드를 쓰는데 슬라이싱을 통해서도 할 수 있습니다. 전체를 슬라이싱하면 복사본으로 인식합니다. original_list = [1,2,3,4,5] copied_list = original_list[:] copy를 이용한 복사 copy 매쏘드를 이용한 방법입니다. 리스트 뒤에 copy()를..
문자열 이스케이프 문자열을 다룰 때 특수 문자를 처리하기 위해 이스케이프 문자라는 걸 사용합니다. 특수한 의미를 갖는 문자를 일반 문자처럼 쓰거나 줄바꿈을 하기 위해서 씁니다. 이스케이프의 뜻은 탈출이라는 뜻인데 말 뜻대로 문자열에서 탈출하거나 원래의 쓰임에서 탈출해서 일반 문자가 되는 것을 의미합니다. 주로 쓰는 이스케이프 문자 사실 더 있지만 그나마 사용할만한 것만 소개하겠습니다. 그외의 것은 파이썬 책이나 파이썬 튜토리얼에서 확인하시면 될 것 같습니다. Escape Meaning \\ Backslash(stores one \ ) \' Single quote(stores ') \" Double quot(stores '') \f Formfeed \n Newline(linefeed) \r Carriage..
문자열 패딩 파이썬에서는 f-string이나 문자열 포맷팅으로 변수를 문자열에 삽입할 수 있는데 부등식 기호를 잘 쓰면 패딩 기능이 가능합니다. 즉, 문자열의 최소 길이를 내가 지정할 수도 있고 패딩된 문자열 정렬을 지정할 수 있습니다. 패딩정렬 문자열로써 패딩을 하는 경우 컴퓨터는 부등식을 정렬로 받아들입니다. f-string으로 패딩을 쓰면 다음과 같이 쓰면 됩니다. f"{변수 또는 표현식:패딩정렬}" 각 요소는 다음과 같습니다. 변수 또는 표현식 : 포맷팅하고자 하는 값 또는 표현식 패딩 : 필드의 최소 길이 지정. 길이를 넘지 않는 한도내에서 문자열이 채워집니다. 정렬 : 패딩된 문자열을 어떻게 정렬할지 지정. '' : 오른쪽 정렬 '^': 가운데 정렬 예제를 보면 이해가 되실 겁니다. name ..
파이썬의 강력한 도구 데코레이터 파이썬은 다양한 프로그래밍 기술을 지원하는 다재다능한 언어입니다. 그 중에서도 파이썬의 데코레이터는 코드 재사용과 함수 감싸기를 간편하게 해주는 강력한 도구입니다. 데코레이터란? 데코레이터는 함수나 메서드의 동작을 변경하거나 확장하기 위해 사용되는 파이썬 함수입니다. 데코레이터를 사용하면 함수의 코드를 수정하지 않고도 함수의 동작을 변경할 수 있습니다. 이는 코드의 재사용성을 높이고, 가독성을 향상시키는 데 큰 도움이 됩니다. @ 기호를 사용하여 함수 위에 표시됩니다. def my_decorator(func): def wrapper(): print("Something is happening before the function is called.") func() print(..
병렬 컴퓨팅 수행하기 파이썬은 데이터 과학 및 기계 학습 분야에서 인기 있는 언어 중 하나로, 데이터 처리와 분석에 탁월한 퍼포먼스를 자랑합니다. 그러나 대규모 데이터셋을 처리하거나 병렬 컴퓨팅을 수행해야 할 때 파이썬이 느리다보니 여러 라이브러리를 사용하면서 극복하고 있습니다. 빠른 처리를 위해 병렬 컴퓨팅 또한 좋은 방법이 될 수 있는데 Dask를 통해서 병렬 처리를 해보는게 어떨까 싶습니다. Dask 소개 Dask는 병렬 컴퓨팅 및 분산 데이터 처리를 위한 파이썬 라이브러리로, NumPy와 Pandas와 유사한 API를 제공하고 대규모 데이터셋을 처리하고 병렬화하는 기능을 제공합니다.즉, Numpy처럼 Pandas처럼 할수 있으면서 병렬처리 기능을 첨가할 수 있다는 얘기입니다. Dask의 주요 기능..
판다스로 Json 불러오기 Json(JavaScript Object Notation) 은 Javascript 객체 문법을 따르는 문자 기반의 데이터이입니다. 네트워크를 통해 전송할 때 유용한 면이 많기 때문에 다양한 곳에서 쉽게 볼 수 있는 포맷입니다. 데이터를 크롤링하거나 다른 외부에서 가져올 때 Json 객체로 변환되어서 가져오는 경우가 많은데 파이썬에서 json 모듈을 이용해 json 파일을 열 수도 있지만 보기 불편합니다. 가독성을 위해 판다스에서 Json파일을 저장, 불러올 수 있습니다. pd.read_json() 함수를 사용하여 JSON 파일이나 문자열을 데이터프레임으로 변환할 수 있습니다. 아래는 JSON 데이터를 판다스 데이터프레임으로 불러오는 예시 코드입니다: JSON 파일을 데이터프레임..
Json 파일 만들기 Json은 자바스크립트의 객체 표기법으로부터 파생된 부분 집합으로 몇 가지 표기법에 의해 구조가 구성됩니다. Json 데이터는 '키 : 값' 의 딕셔너리 형태로 이루어집니다. 콜론으로 구분됩니다. 여러 '키:값'은 쉼표(,)로 데이터를 구분합니다. 객체(object)는 중괄호({})로 표현합니다. 배열(array)은 대괄호([])로 표현합니다. 예를 들어, 어떤 사람의 정보를 객체로 json으로 표현하다고 하면 다음과 같이 할 수 있습니다. { "name": "John", "age": 30, "city": "New York" } 대괄호로 둘러쌓인 값들은 주로 리스트로 표현되는데 이 배열을 쉼표로 구분해서 표현합니다. { "name": "John", "age": 30, "city": ..
파이썬에서 수학함수 어떻게 쓰나? 코딩을 하다보면 수학함수가 의외로 많이 쓰입니다. 이번 포스팅은 자주 쓰는 수학함수를 math 모듈로 가져오는 방법에 대한 얘기입니다. math 모듈 math 모듈로 아주 간단하게 주요함수들을 불러올 수 있는데 누가 만들었는지 아주 기똥찹니다. 주로 자연상수 e나 삼각함수, 지수를 쓸때 유용합니다. 다른건 코드로 할 수 있기도 하지만 math모듈을 활용하면 코드량도 줄이고 간편하게 할 수 있는게 큰 장점입니다. 아나콘다나 미니콘다로 설치했다면 대부분 기본적으로 깔려 있습니다. 혹시 없다면 아래와 같이 math 모듈을 설치합니다. pip install math 주요한 수학 함수 수치계산이나 데이터 분석을 위해서는 모델링이 필수적인데 삼각함수나 지수로그함수가 적합한 모델일 ..
플로우 차트는 시각적으로 표현하는 도구로써 사용할 수 있는데 MERMAID라는 오픈 소스 도구를 이용해 할 수 있습니다. 저는 주로 노션에서 이걸 많이 쓰는데 프로젝트 기획할 때 굉장히 유용합니다. MERMAID란? MERMAID는 MARKDOWN을 사용하여 다이어그램을 만들 수 있는 JavaScript 기반의 라이브러리입니다. 그래서 다이어그램을 만드는 용도로서 사용합니다. 글로 기록하는 것도 중요하지만 한눈에 보여지게 하면 아이디어 확장하는데 더 좋고 교정할 부분이 바로 볼 수 있다는 점에서 중요한 것 같습니다. 코드처럼 쓰면 output이 수도코드형식으로 나오게 됩니다. 저는 주로 노션을 통해서 하지만 다른 곳에서 쓰고 싶다면 Node.js를 설치해서 진행할 수 있습니다. Node.js가 설치되어 ..
파이썬의 문자열을 html 파일로 저장하는 방법입니다. 사실 문자열에는 HTML 코드를 의미하고 저장하는 것입니다. 파이썬의 open(), write(), close()를 이용해서 html 파일을 작성할 수 있습니다. HTML 코드 준비하기 사실 막막할 수 있는데 html코드를 문자열화만 하면 됩니다. 글자 그대로 띄어쓰기 등 모든 것을 그대로 반영하려면 큰따옴표 3개를 앞에 써놓고 시작하면 됩니다. html_text = """ This is a Heading This is a paragraph. """ open(), write() 사용하기 저런 문자열은 open,write를 이용해서 파일로써 저장하면 됩니다. 이때 파일확장자로 html로 정의하면 html 파일이 만들어집니다. html_file = op..