Today I Learned (TIL) 71

[TIL] Python 챌린지 - 2회차

1. API란? API (Application Programming Interface)란 애플리케이션 간 통신을 위한 규약을 말한다. 웹 API란 HTTP 프로토콜을 통해 데이터를 주고받는 인터페이스를 말한다. 2. HTTP 호출과 API 호출의 차이구분목적응답 형식HTTP 호출일반적인 웹 페이지나 리소스 요청주로 HTML, CSS, JavaScript등의 웹 문서를 반환API 호출특정 기능이나 데이터에 접JSON이나 XML 같은 구조화된 데이터 형식으로 응답 3. JSON(JavaScript Object Notation)이란? 데이터를 저장하고 전송하기 위한 경량의 데이터 교환 형식이다.  사람이 읽고 쓰기 쉬우며 기계가 파싱하고 만들어내기 쉽다. 또한, 언어 독립적이어서 대부분의 프로그래밍 언어에서 ..

[TIL] SQL 베이직 - 2회차

1. SQL 집계함수: COUNT, MAX, MIN, SUM, AVG  SQL의 집계함수는 여러 행 또는 열로부터 하나의 결과값을 반환한다. 집계함수는 전체 데이터를 대상으로 사용하거나, 특정 컬럼을 기준으로 사용할 수 있다. 집계함수는 NULL값 가진 행을 제외 하고 수행하기 때문에 count()를 이용해 행의 개수를 세었을 때 NULL 값을 제외한 수가 반환된다. AVG를 이용할 때도 NULL 값을 제외하고 평균을 구한다.  2. SQL 그룹화: GROUP BY와 HAVING GROUP BY절 집계함수에 그룹(기준) 이 더해진 개념이다. 특정 컬럼을 기준으로 데이터를 요약해서 비교하고 싶을 때 사용한다. SELECT문에 기준컬럼과 집계함수가 둘 다 있는 경우 GROUP BY는 필수이다.# 집계함수,..

[TIL] Python 챌린지 - 1회차

1. 웹사이트구분 정적 웹사이트 동적 웹사이트 콘텐츠 고정된 HTML 파일로 구성되어 있어 모든 사용자에게 동일한 내용을 보여줌사용자 요청에 따라 실시간으로 생성되어 개인화된 내용을 제공 할 수 있음 서버 처리 서버는 단순히 미리 작성된 파일을 전송함서버에서 스크립트를 실행하여 동적으로 콘텐츠를 생성 데이터베이스 일반적으로 데이터베이스를 사용하지 않음대부분 데이터베이스를 사용하여 정보를 저장하고 검색 상호작용 사용자와의 상호작용이 제한적사용자와 다양한 방식으로 상호작용할 수 있음 로딩 속도 일반적으로 빠름정적 웹사이트보다 상대적으로 느릴 수 있음 2. 웹 크롤링 기호: '뉴스 헤드라인 수집'- Requests 라이브러리 Python용 HTTP 라이브러리를 말한다. HTTP는 웹 브라우저와 서버 간 데이터..

[TIL] 데이터 전처리 - Pandas(3)

6. 데이터 병합- concat데이터프레임을 위아래로 혹은 좌우로 연결할 수 있는 함수이다. axis를 통해 연결하고자 하는 축(방향)을 지정하고 기본값은 0으로 되어있어 위아래로 연결다. 1로 설정하면 좌우로 연결이 가능하다. ignore_index의 기본값은 False이며, 연결된 결과 데이터프레임의 인덱스를 유지한다. True로 설정하면 새로운 인덱스를 생성한다.import pandas as pddf1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']})df2 = pd.DataFrame({'A': ['A3', 'A4', 'A5'], 'B': ['B3', 'B4', 'B5']})# 위아래로 데이터프레임 연결result_vertical ..

[TIL] 데이터 전처리 - Pandas(2)

4. 데이터 확인하기- 데이터 확인data.head() # head()은 기본 5개 행에 대한 데이터를 보여줌data.head(3) # ()안에 숫자만큼 데이터를 보여줌data.info() # 데이터 정보 파악(인덱스, 컬럼명, 컬럼의 데이터 개수, 데이터 타입), null 값을 확인data.describe() # 데이터의 기초통계량을 확인(숫자값에 대해서만 확인이 가능) - 결측치, 중복, 이상치 확인df.isnull().sum() # 결측치 확인, 결측치 갯수 확인도 가능df.dropna() # 결측치 제거df.duplicated(subset=['컬럼1', '컬럼2', '컬럼3']) # 중복 데이터 확인df.drop_duplicates(subset=['컬럼1', '컬럼2', '컬럼3']) # 중복 데..

[TIL] 데이터 전처리 - Pandas(1)

1. 데이터 전처리 데이터 분석을 위해 수집된 데이터들을 방향성을 가공하며 내용물을 파악하는 과정을 말한다. 2. Pandas- Pandas란? 데이터를 조작하고 쉽게 분석할 수 있게 도와주는 라이브러리이다. Pandas에서 사용되는 대표적인 데이터 오브젝트는 Series, DataFrame 2가지 이다.import pandas as pd# 에러날 경우 !pip install pandas구분 Excel Pandas 자동화와 프로그래밍 기능 다양한 라이브러리를 사용하여 데이터를 불러오고 변환하며 분석할 수 있음반복적이고 복잡한 작업을 자동화할 수 있음시각적 사용자 인터페이스를 통해 데이터를 다루는 스프레드시트 프로그램으로 작업은 주로 수동으로 수행되며, 고급 기능을 프로그래밍적으로 확장하기 어려움 대용..

[TIL] Python 베이직 - 1회차

1. 변수의 주소, 타입, 메모리 확인하기 모든 변수는 메모리를 할당받고, 주소값을 갖게 된다. 파이썬에서 기본 자료형(int, float, str 등)은 불변 객체이기 때문에 직접적으로 메모리 주소를 공유하게 할 수는 없다. int 형식은 유동적으로 변하고 float는 고정이다. str 형식은 49바이트를 할당받고 시작한다.import sys# 변수 선언int_var = 1float_var = 3.14str_var = "Hello"# 변수의 자료형 출력print(f"Type of int_var: {type(int_var)}")print(f"Type of float_var: {type(float_var)}")print(f"Type of str_var: {type(str_var)}")# 변수의 메모리 주소..

[TIL] DA를 위한 데이터베이스 완전 정복

1. DBMS란? DBMS는 데이터를 체계적으로 저장하고 관리할 수 있게 도와주는 프로그램이다. 데이터를 효율적으로 관리하기 위해 사용하며 저장, 검색, 수정, 삭제 기능을 사용할 수 있다.종류설명MySQL오픈 소스 데이터베이스로 많이 사용PostgreSQL또 다른 오픈 소스 데이터베이스로 안정성이 높음Oracle기업에서 많이 사용하는 상용 데이터베이스MS SQL마이크로소프트에서 만든 데이터베이스 2. 키의 종류 데이터베이스에서 키는 데이터를 고유하게 식별하는 데 사용한다. 키를 통해 데이터베이스 내에서 특정 데이터를 쉽게 찾을 수 있다.종류설명기본키 (Primary Key)테이블에서 각 행(레코드)를 유일하게 식별중복되지 않으며 NULL 값을 가질 수 없음외래키 (Foreign Key)다른 테이블의 기..

[TIL] SQL 챌린지 - 1회차

1. 데이터베이스 서비스와 개념- MySQL 관계형 데이터베이스가 1970년에 개발된 이후 기조의 레거시 기업들은 Oracle 데이터베이스를 많이 사용하고 있으며, 여전히 대기업들은 많이 사용한다.- 클라우드 데이터베이스 종류 1) 클라우드 ▷ 클라우드를 활용하면 같은 데이터를 실시간으로 확인 가능하기 때문에 미스 커뮤니케이션을 줄일 수 있음 ▷ 프로젝트 진행 시 클라우드 데이터베이스를 사용하는 것을 권장하며 대표적으로 GOOGLE - BigQuery, AMAZON - REDSHIFT 등이 있음 2) ON - PREMISE  ▷ MySQL, ORACLE, PostgreSQL 이 대표적- 데이터 가져오기 정확하게 접속하고 싶은 DB가 있다면 정보를 알아야 한다. DBeaver는 데이터베이스를 연결하는 하나..

[TIL] SQL 베이직 - 1회차

1. SQL의 작동순서 및 작성순서- 작동순서 FROM → ON → JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY 테이블 확인 후 조인 조건을 확인하고 조인 후 추출할 조건을 확인한다. 그리고 데이터 그룹화, 추출, 중복제거를 마치면 마지막으로 데이터를 정렬한다. 작동순서를 고려하지 않고 쿼리를 작성할 경우 의도와 다른 결과를 얻을 수 있으므로 작동순서를 꼭 기억해야 한다.- 작성순서 SELECT → FROM → JOIN → ON → WHERE → GROUP BY → HAVING → ORDER BY 2. SQL 기본구조: SELECT, FROM- SELECT SELECT문을 사용하여 테이블의 값을 선택한다. 아스테리크(*) 기호를 사용하..

[TIL] 데이터 분석 파이썬 종합반 - 5주차(2)

6. glob 사용하기 glob함수는 파일 시스템에서 파일을 찾을 때 사용되는 유용한 도구이다. 이 함수는 파일 이름의 패턴 매칭을 통해 파일을 검색하고, 일치하는 파일들의 리스트를 반환한다. 주로 파일 이름이나 확장자에 따라 파일을 필터링하는 데 사용된다.import glob# 현재 경로의 모든 파일을 찾기file_list1 = glob.glob('*')-----------------------------------------------------------------------------------------------# 단일 파일 패턴으로 파일을 찾기file_list2 = glob.glob('drive')-----------------------------------------------------..

[TIL] 데이터 분석 파이썬 종합반 - 5주차(1)

1. 파일 불러오기 및 저장하기- 파일 확장자 및 파일 불러오기파일 확장자파일 불러오기CSV 파일import pandas as pd df = pd.read_csv('파일 경로')Excel 파일import pandas as pd df = pd.read_excel('파일 경로')JSON 파일import pandas as pd df = pd.read_json('파일 경로')텍스트 파일import pandas as pd df = pd.read_csv('파일 경로', delimiter='\t') # 만약 탭으로 구분되어 있다면 delimiter='\t'를 사용합니다. - 파일 저장하기import pandas as pddata = { 'Name': ['John', 'Emily', 'Michael'], '..

[TIL] 데이터 분석 파이썬 종합반 - 4주차

1. 함수 함수란 입력을 받아 원하는 처리를 한 후 출력을 내보내는 일련의 작업을 수행하는 코드 블록이다. 프로그램 내에서 특정한 기능을 수행하기 위해 코드를 논리적으로 그룹화하여 재사용 가능한 형태로 정의한다. 함수는 코드 재사용, 모듈화, 유지 보수 용이성, 가독성 향상과 같은 이유로 필요하다.# 함수 구조def 함수이름(매개변수1, 매개변수2, ...): # 함수 내부에서 수행할 작업 return 결과값 # (선택적) 함수의 결과를 반환-----------------------------------------------------------------------------------------------# 함수 정의def greet(name): message = "Hello, " ..

[TIL] 데이터 분석 파이썬 종합반 - 3주차

1. 조건문 조건문이란 프로그램의 흐름을 제어하는 중요한 요소 중 하나로 특정 조건이 참(True)인 경우에만 특정 코드 블록을 실행하도록 한다. 파이썬에서 조건문은 if, elif, else 키워드를 사용하여 구성된다. 조건문에서는 들여 쓰기 및 띄어쓰기가 매우 중요하다. 파이썬은 들여 쓰기를 통해 블록을 식별하기 때문에 들여 쓰기가 제대로 이루어지지 않으면 오류가 발생한다. 조건문은 중첩해서 사용할 수 있다.x = 10if x > 0: print("양수입니다.") # 조건이 참일 때 실행될 코드elif x 5: print("x는 5보다 큽니다.") if x  2. 반복문 - for문 파이썬은 리스트, 튜플, 문자열 등과 같은 반복 가능한 데이터 타입을 반복문으로 만들 수 있다. 이 작업은..

[TIL] 데이터 분석 파이썬 종합반 - 2주차

1. 리스트 리스트란 파이썬에서 가장 자주 사용되는 데이터 구조 중 하나이다. 대괄호 [ ]를 사용해 만들 수 있다. 여러 값을 순서대로 담을 수 있고 각 값은 쉼표로 구분된다.my_list = [1, 2, 3, 4, 5]print(my_list) # 출력: [1, 2, 3, 4, 5]-----------------------------------------------------------------------------------------------# 첫 번째 요소에 접근하기first_number = numbers[0]print("First number:", first_number)------------------------------------------------------------------..