오늘의 기록
[Pandas] apply 함수를 사용한 데이터 분석
사용 데이터 MovieLens 영화 데이터 -> ml-latest-small.zip -> movies.csv https://grouplens.org/datasets/movielens/ import pandas as pd movies = pd.read_csv('[파일 경로]/movies.csv', index_col='movieId') +) year 컬럼은 title에서 추출하여 따로 추가해둔 상태 genre 분석 apply 함수를 사용해 movies 데이터의 장르를 분석해보자. apply apply 함수는 특정 데이터 컬럼에 특정 함수를 반복적으로 적용시킬 수 있는 함수이다. 예시를 보면 이해가 빠를 것이다. sample_genre = movies['genres'][1] sample_genre.split(..
[Pandas] seaborn을 사용한 데이터 시각화
사용 데이터 MovieLens 영화 데이터 -> ml-latest-small.zip -> movies.csv https://grouplens.org/datasets/movielens/ import pandas as pd movies = pd.read_csv('[파일 경로]/movies.csv', index_col='movieId') +) year 컬럼은 title에서 추출하여 따로 추가해둔 상태 데이터에 가장 많이 출현하는 개봉연도 movies['year'].value_counts() year에 대한 개수를 보여준다. 2002 311 2006 295 2001 294 2007 284 2000 283 ... 1902 1 1903 1 1919 1 1922 1 1917 1 Name: year, Length: 1..
[Pandas] str.extract를 사용한 데이터 전처리 + 결측값 핸들링하기
사용 데이터 MovieLens 영화 데이터 -> ml-latest-small.zip -> movies.csv https://grouplens.org/datasets/movielens/ import pandas as pd movies = pd.read_csv('[파일 경로]/movies.csv', index_col='movieId') 판다스에서 문자열 관련 함수를 사용하거나 전처리를 하기 위해서는 str을 붙여주어야 한다. 그중 원하는 문자열을 추출하는 extract 함수에 대해 알아보겠다. 개봉연도 데이터 정제하기(데이터 전처리, Preprocessing) movies 데이터의 title에서 괄호 ( ) 안의 연도 4자리를 추출하고 싶을 때, 정규 표현식을 사용하면 편리하다. movies['year'] ..
[Pandas] csv 파일 읽기 및 쓰기
MovieLens 영화 데이터 -> ml-latest-small.zip -> movies.csv https://grouplens.org/datasets/movielens/ Read Data csv 파일 읽기 import pandas as pd pd.read_csv('[파일 경로]/movies.csv') Pandas를 통해 해당 경로의 파일을 읽을 수 있다. read_csv가 아닌 read_excel, read_pickle 등 다양한 파일 형식을 읽을 수 있다. csv 파일을 읽으면 기본적으로 1열에 0부터 시작하는 index를 부여한다. movies = pd.read_csv('[파일 경로]/movies.csv') 만약, 파일을 읽을 때 변수에 저장하면, 해당 파일을 변수를 통해 여러 가지 분석을 할 수 ..
[Java] 멀티쓰레드 프로그래밍
https://github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 백기선님 자바 기초 스터디 10주차 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Thread 클래스와 Runnable 인터페이스 프로세스와 쓰레드 프로세스(process)란 실행 중인 프로그램이다. 프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 ..
[Java] 예외 처리
https://github.com/whiteship/live-study whiteship/live-study 온라인 스터디. Contribute to whiteship/live-study development by creating an account on GitHub. github.com 백기선님 자바 기초 스터디 9주차 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바에서 예외 처리 방법 (try, catch, throw, throws, ..
[AWS] EC2, ubuntu 서버 백그라운드 실행
aws ec2 환경에서 서버를 배포할 때는 백그라운드 실행을 통해 터미널을 종료해도 서버가 꺼지지 않도록 해야 한다. 터미널을 통해 ubuntu에 접속하고 스프링 애플리케이션을 백그라운드로 실행하는 방법을 알아보자. EC2 ubuntu 서버 접속 AWS EC2에서 발급받은 private key파일(.pem)이 필요하다. pem 파일 권한 변경 (최초 1회) pem파일이 저장되어 있는 경로로 이동 -> 파일 권한 변경 chmod 400 [개인키].pem ssh 접속 pem 파일이 저장되어 있는 경로로 이동해서 ssh -i "[개인키].pem" ubuntu@[각자 EC2 호스트 이름] 'ubuntu@' 뒤에는 각자의 EC2 ip번호나 도메인을 적으면 접속할 수 있다. Background Server 실행 u..
[Spring] Spring Jdbc - batchUpdate()를 사용한 bulk Insert 최적화
Spring Data JPA의 saveAll()메서드는 인자 값으로 받은 entity들을 저장하는 메서드이다. 실제로 실행해보면 여러 엔티티들에 대한 insert 쿼리가 각각 한 번 씩 차례대로 나가는 것을 볼 수 있다. 엔티티의 수가 적으면 상관없지만, 10,000건, 100,000건 처럼 많아지면 엔티티 1 : insert 1 방식은 부담이 될 수 있다. 인터넷을 검색해보면 hibernate.jdbc.batch_size: 50 처럼 한 번에 여러 건을 insert하는 벌크 연산이 많이 소개되어 있다. 이 방법을 사용해도 좋지만, 여기서는 Spring JPA가 아닌 JDBC를 사용한 보다 빠르고 강력한 연산인 batchUpdate()를 소개하고자 한다. Bulk Insert bulk insert는 여러..