본문 바로가기
728x90

전체 글172

Django의 F() 객체란? 오늘은 Django에서의 객체들을 필터링 하던 중 필드 값을 그대로 참조 하고 싶어져서 조사하게 되었다. F() 객체들 사용 하기 위해서는 From django.db.models import F 라고 선언하면 된다. F() 객체를 사용하면 쿼리셋에서 필드 값을 그대로 참조하여, 쿼리 실행 시에 해당 필드의 실제 값을 사용하게 된다. 예를 들어, Q(price__gte=F('discounted_price'))와 같이 F() 객체를 사용하면, 쿼리 실행 시에 price 필드와 discounted_price 필드의 실제 값을 비교하여 결과를 반환한다. 또한 F() 객체는 필드 값을 연산할 때도 사용할 수 있다. 예를 들어, Product.objects.update(price=F('price') * 1.1)와 .. 2023. 4. 14.
[Python] DataFrame 의 결측값, 중복값 확인하고 제거 DataFrame 의 결측값, 중복값 확인하고 제거하기 데이터 프레임 내의 데이터들은 결측치(값이 없는 칸) 또는 중복값(모든 열의 값이 동일한 row 들)이 있을 수 있다. 데이터 분석을 하기 전에 이 값들을 제거하고 시작하는 것이 용량을 줄이기에도 좋고, 이상한 결과가 나오지 않게 하는 데에도 좋다. import numpy as np import numpy as pd import matplotlib.pyplot as plt import seaborn as sns # 데이터 분석하는데 import 하고 시작하는 것들. # 이번 글에서는 필요없는 부분도 있지만 보통 데이터 분석할 때 다 쓰인다. 1. 결측치 확인하기 결측치는 .isna( ) 또는 .isnull( ) 함수로 쉽게 확인할 수 있다. df1... 2023. 4. 12.
파이썬으로 다루는 MySQL pymysql 설치 pymysql은 Python에서 mysql을 사용할 수 있는 가장 쉬운 라이브러리이다. pymysql 라이브리러 이외에도 MySQLdb, MySQL connector 등의 다양한 라이브러리가 존재한다. 설치 pip install pymysql (터미널 창) mysql 핸들링 코드 작성 순서 1. pymysql 모듈 import 2. pymysql.connect() 함수를 사용하여 MySQL에 연결(호스트명, 포트, 로그인, 암호, 접속할 DB 등을 인자로 지정) 3. MySQL에 접속을 성공하면, Connection 객체로부터 cursor() 함수를 호출하여 Cursor 객체를 호출 4. Cursor 객체의 execute() 함수를 사용하여 SQL 문장을 DB 서버에 전송 5. SQL.. 2023. 4. 10.
백준 9328번 열쇠 문제 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 필요하다. 상근이는 일부 열쇠를 이미 가지고 있고, 일부 열쇠는 빌딩의 바닥에 놓여져 있다. 상근이는 상하좌우로만 이동할 수 있다. 상근이가 훔칠 수 있는 문서의 최대 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수가 주어진다. 테스트 케이스의 수는 100개를 넘지 않는다. 각 테스트 케이스의 첫째 줄에는 지도의 높이와 너비 h와 w (2 ≤ h, w ≤ 100)가 주어진다. 다음 h개 줄에는 빌딩을 나타내는 w개의 문자가 주어지며, 각 문자는 다음 중 하나이다. '.'는 빈 공간을 나타.. 2023. 4. 1.
백준 2042번 구간 합 구하기(BIT) 문제 어떤 N개의 수가 주어져 있다. 그런데 중간에 수의 변경이 빈번히 일어나고 그 중간에 어떤 부분의 합을 구하려 한다. 만약에 1,2,3,4,5 라는 수가 있고, 3번째 수를 6으로 바꾸고 2번째부터 5번째까지 합을 구하라고 한다면 17을 출력하면 되는 것이다. 그리고 그 상태에서 다섯 번째 수를 2로 바꾸고 3번째부터 5번째까지 합을 구하라고 한다면 12가 될 것이다. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)과 M(1 ≤ M ≤ 10,000), K(1 ≤ K ≤ 10,000) 가 주어진다. M은 수의 변경이 일어나는 횟수이고, K는 구간의 합을 구하는 횟수이다. 그리고 둘째 줄부터 N+1번째 줄까지 N개의 수가 주어진다. 그리고 N+2번째 줄부터 N+M+K+1번째 줄까지 세 .. 2023. 3. 30.
세그먼트 트리란? 세그먼트 트리(Segment Tree)란? 여러 개의 데이터가 존재할 때 특정 구간의 합(최솟값, 최댓값, 곱 등)을 구하는 데 사용하는 자료구조이다. 트리 종류 중에 하나로 이진 트리의 형태이며, 특정 구간의 합을 가장 빠르게 구할 수 있다는 장점이 있다. (O(logN)) 아래 예제를 통해 세그먼트 트리(Segment Tree)를 왜 사용하는지 알아보자. (Ex) 위와 같은 배열이 있다고 하자. 이 때 데이터의 개수는 10개로 인덱스는 0부터 9까지 차례대로 1~10의 원소가 삽입되어 있다. 만약 인덱스 2부터 8까지 데이터를 더하려면 어떻게 할까? 위 그림처럼 2~8 범위의 원소를 하나씩 다 더하면 된다. 결과는 42이다. 이러한 방식으로 다른 특정 구간의 합을 구한다고 고려했을 때 앞에서 하나씩 .. 2023. 3. 29.
728x90