[Pandas] 데이터프레임 순회하기 특정 조건에 맞는 데이터 프레임 값을 출력해야하는 경우가 있다. 데이터프레임 순회를 하여 데이터프레임을 모두 출력하는 방법에 대해서 알아보자 먼저 샘플 데이터 프레임을 생성해준다. import pandas as pd import names from random import * age = [randint(16, 19) for i in range(0, 5)] gender = [choice(["male", "female"]) for i in range(0, 5)] name = [names.get_first_name(gender=g) for g in gender] grade = [choice(['A','B','C','D']) for i in range(0, 5)] math ..
[Pandas] Query Pandas에서 조건에 부합하는 데이터를 추출할 때, 가장 많이 사용하는 게 Query함수라고 한다. 가독성과 편의성은 좋지만, .loc[]로 구현한 것 보다 속도가 느리다. query 함수를 사용하기 위해서 랜덤 데이터프레임을 생성해준다. import pandas as pd import names from random import * age = [randint(16, 19) for i in range(0, 101)] gender = [choice(["male", "female"]) for i in range(0, 101)] name = [names.get_first_name(gender=g) for g in gender] cl = [choice(['A','B','C','D']..
[Python] 파이썬에서 다른 py 파일의 변수/함수 호출 변수/함수가 다른 파이썬 파일에 정의되어있을 때, 가져와서 사용하는 방법에 대해 알아보자 라이브러리와 같이 import 혹은 from ~ import 문을 사용해서 가져올 수 있다. 먼저 파이썬 프로젝트 폴더 내의 test라는 폴더가 있고 그안에 test.py란 파일을 생성해준다. test.py 의 내용은 다음과 같다. name = "one" def test(name): return print(f"my name is {name}") 같은 폴더 내의 파일 import import 파일명 test 폴더에 test2.py 파일을 생성해서 다음과 같이 import 해준다. import test name = test.name test.test(name)..
[Python] plotly 사용하기 (1) Line 그래프 앞선 포스팅에서 Plotly를 설치하는 방법에 대해서 알아보았다. [Python] Plotly 설치 [Python] Plotly 설치 파이썬의 fullstack 웹 프레임워크인 reflex (https://reflex.dev/) 로 간단한 웹 프로젝트를 하게 되었다. 홈페이지의 갤러리에 가보면 reflex로 구현한 샘플 웹페이지들을 확인 할 수 있다 heywantodo.tistory.com Plotly 라이브러리를 이용해서 그래프를 그려보자 데이터는 plotly에서 제공하는 임의의 데이터를 사용 한다. import pandas as pd import plotly.express as px import plotly.graph_objects as g..
[Pandas] Group by Pandas 라이브러리를 사용해서 Dataframe에서 Group by를 통해 데이터를 집계하는 방법에 대해 알아보자 문법 기본 문법은 다음과 같다. 데이터프레임.groupby(그룹이되는 컬럼)[계산을 하고싶은 컬럼].집계함수() 사용 예제 먼저 랜덤 라이브러리를 사용해 샘플 데이터 프레임을 생성해준다. import names from random import * age = [randint(16, 19) for i in range(0, 101)] gender = [choice(["male", "female"]) for i in range(0, 101)] name = [names.get_first_name(gender=g) for g in gender] cl = [choic..
데이터프레임에서 특정 조건 & 특정 문자가 포함된 값을 추출하고 싶을때, 다음과 같은 방식을 사용하면 추출이 가능하다. 특정 조건이 포함된 값 추출 먼저 샘플 데이터를 불러온다. data = "./test_data/test.csv" df = pd.read_csv(data) 위의 데이터 프레임에서 년도가 1999년인 데이터만 확인하고 싶다면 다음과 같이 코드를 작성할 수 있다. df[df['Year'] == 1999] 조건을 2개 이상 줄 수 있는데, 2개 이상인 경우엔 각 조건을 괄호로 묶어준다. #조건을 둘 다 만족해야 할 때 df[(조건1) & (조건2)] #조건 중 하나라도 만족하면 될 때 df[(조건1) | (조건2)] 예를 들어 년도가 2000년대 이상이면서 비율이 95가 넘는 데이터프레임을 추..
[Python] Plotly 설치 파이썬의 fullstack 웹 프레임워크인 reflex (https://reflex.dev/) 로 간단한 웹 프로젝트를 하게 되었다. 홈페이지의 갤러리에 가보면 reflex로 구현한 샘플 웹페이지들을 확인 할 수 있다. https://nba.dev.reflexcorp.run/ NBA App nba.dev.reflexcorp.run 그중 NBA App이 데이터 시각화 샘플 웹페이지인데, 여기선 plotly를 사용하여 시각화를 하고있다. 사실 태블로나 슈퍼셋같은 데이터를 시각화하는 툴을 많이 사용하기 때문에, 파이썬으로 시각화하는 방법을 몰랐다. 이번 기회에 plotly에 대해서 짧게 공부를 해보자고 한다. Plotly란? 인터렉티브한 시각화가 가능한 파이썬 그래픽 라이브러..
[Python] 클래스(class) 클래스의 개념 파이썬의 클래스는 객체를 표현하기 위한 문법이다. 간단하게 생각해서 설계도라고 생각하면 된다. 클래스를 사용하면 객체의 구조와 행동을 정의하여 복잡한 문제를 다루기 쉽도록 만든다. ✔ 파이썬은 모든 것이 객체이기 때문에, 클래스도 객체다. 즉 클래스(class)란, 똑같은 무언가를 계속 만들어 낼 수 있는 설계 도면이고, 객체(object)란 클래스로 만든 피조물을 뜻한다. class Cookie: pass a = Cookie() b = Cookie() Cookie()의 결과값을 리턴받은 a와 b가 객체가 된다. 클래스로 만든 객체를 인스턴스라고도 하는데, a = cookie()로 만든 a는 객체다. 그리고 a 객체는 Cookie의 인스턴스다. 즉, 인스..
[API][Apps Script] 공공 데이터 포탈에서 공휴일 API 가져오기 구글 apps script를 이용하여 특정 사용자에게 특정 시간에 메일을 전송하는 스크립트를 생성하여 사용하고 있다. 공휴일엔 메일을 보내지 않는 기능을 구현하고 싶은데, 구글 캘린더에서 제공하는 휴일 캘린더는 식목일 같은 공휴일이 아닌 날에도 공휴일로 제공을 하여 방법을 찾아보니 공공데이터 포탈에서 제공하는 공휴일 정보 API를 불러와서 사용하는 방법이 있었다. 공공 데이터 포탈 API 키 신청 공공 데이터 포탈 공공데이터포털 통합 로그인 공공데이터포털 로그인 국민과 함께 하는 공공데이터포털에 오신 것을 환영합니다 auth.data.go.kr 데이터 찾기에 공휴일을 검색 한 후 오픈 API 탭으로 가면 제일 위에 한국 천문 ..
[Django/React] 장고와 리액트 연동 (3) React App 생성 yarn create react-app React-project +) yarn 이 없다면 다음과 같이 설치한다. npm -g install yarn react 프로젝트 src 폴더 내에 RestAPI.js 파일을 생성해준다. App.js 파일에 다음과 같이 추가한다. import logo from './logo.svg'; import './App.css'; import RestAPI from "./RestAPI.js" import React from "react"; function App() { return ( ); } export default App; Axios Axios는 브라우저, Node.js를 위한 HTTP 비동기 통..
[Django/React] 장고와 리액트 연동 (2) Serializer 생성 frontend로 데이터를 보내기 위해 장고 내부의 복잡한 테이터들을 json/xml 등의 형태로 데이터를 변환해준다고 생각하면 된다. Serializer는 DRF가 제공하는 클래스로, DB 인스턴스를 JSON 형식으로 생성한다. 반대로 JSON을 DB로 변경하기 위해선 deserializer가 사용된다. serializer시엔 각각 DB 칼럼들로 정의를 해야한다. App 디렉토리에 serializers.py를 생성하고, 모델과 필드를 작성해준다. from rest_framework import serializers from .models import Review class ReviewSerializer(serializers...
[Django/React] 장고와 리액트 연동 (1) 장고와 리액트의 연동은 장고의 REST 프레임워크(DRF, Django Rest Framework)를 사용하여 연동한다. 프론트엔드(React)가 Django 백엔드로 API 요청을 보내면, 장고는 요청을 서버 사이드 로직에 따라 처리하여 HTTP 응답으로 포장하여 프론트엔드로 보낸다. 데이터를 변경해야하는 경우엔 장고는 데이터베이스에서 필요한 작업을 수행한 다음, 프론트엔드로 성공/실패 여부를 확인하는 응답을 보낸다. Django 백엔드에서 응답을 받으면, 프론트엔드는 UI를 업데이트한다. 위와 같이 프론트 엔드와 백엔드가 상호 작용을 하기위한 연동을 진행해보자. DRF 설치 API 서버로 사용할 Django Rest Framework를 먼저 설치해..