본문 바로가기

python14

[MySQL] python으로 mysql 접근하기 with mysql.connector 이번 포스팅은 python으로 mysql에 접근(select, insert..)하는 방법을 게시하겠습니다. 필자는 MySQL 문법에 익숙하지만 python으로 활용하는 방법은 모르기 때문에 내용이 부실해도 양해 부탁드립니다. mysql.connector 파이썬에서 mysql을 사용하기 위해서 mysql.connector.python, mysql.connector을 사용합니다. import mysql.connector 데이터베이스 생성 mysql.connector.connect : connect 메서드를 사용하여 연결하고자 하는 DB 정보를 입력합니다. mydb.cursor(buffered=True) : cursor는 특정 테이블에 대해서 각 로우에 대한 특정 처리를 위해 사용합니다. 데이터 양이 많은 경.. 2022. 7. 8.
[MySQL] 대용량 데이터 MySQL에 저장 및 조회 - sqlalchemy, to_sql 아래 포스팅에서 진행한 데이터를 가지고 mySQL에 삽입하고 조회해보겠습니다. 2022.07.06 - [python] - [python] 대용량 데이터 읽고 저장 ( pandas vs pyarrow ) with parquet [python] 대용량 데이터 읽고 저장 ( pandas vs pyarrow ) with parquet 최근에 mySQL을 다시 공부하면서 대용량 데이터를 DB에 적재하고, 조회하는 시간을 줄이는 방법에 대해서 고민했습니다. 평소 데이터를 읽을 때 pandas를 애용하고, 파일 형식을 csv나 json으로 맞춰 wnstjrdl.tistory.com 천 만개의 row를 가진 데이터이기 때문에 시간이 좀 걸릴 거라고 예상됩니다. 참고한 사이트들에는 필자보다 적은 데이터인 500-800만.. 2022. 7. 7.
[python] 대용량 데이터 읽고 저장 ( pandas vs pyarrow ) with parquet 최근에 mySQL을 다시 공부하면서 대용량 데이터를 DB에 적재하고, 조회하는 시간을 줄이는 방법에 대해서 고민했습니다. 평소 데이터를 읽을 때 pandas를 애용하고, 파일 형식을 csv나 json으로 맞춰서 데이터를 처리하는 것을 선호했습니다. 이번 포스팅은 대용량 데이터를 pandas로 읽는데 시간이 얼마나 걸리고, 이것을 개선할 pyarrow를 사용해보고 비교해보겠습니다. 그리고 parquet 파일 형식으로 파일 용량을 줄여서 저장해보겠습니다. 데이터 : ecommerce 웹 로그 데이터이며 천만 개의 row와 2G 데이터입니다. Parquet 파케이(parquet)는 하둡에서 칼럼 방식으로 저장하는 저장 포맷입니다. 전통적인 방식인 행 기반 압축 대신 열 기반 압축을 사용하여 같은 칼럼의 데이터.. 2022. 7. 6.
[python] lambda/map/filter 1. lambda lambda parameters : expression 런타임에 생성해서 사용할 수 있는 익명 함수이다. 필자는 sorted에서 key 값으로 자주 사용하는데, 한 줄로 구현되는 간단한 함수에도 사용하면 편리할 거 같다. 사용법에 익숙해지자 # 인덱스 1의 데이터로 내림차순 정렬 result = sorted(result, key = lambda x : x[1], reverse = True) # 제곱 기능을 하는 lambda 함수 square square = lambda x : x * x # string이 빈 문자열일 경우 빈 문자열을, 아니면 첫 번째 글자를 리턴 함수 first_letter = lambda string : string[0] if string else '' 2. map .. 2022. 4. 3.
[python] csv 1. csv • Comma Separated Value(다른 구분 문자도 사용 가능) • 각 열이 특정한 의미를 가짐 • 데이터에 ,(콤마)가 포함되어 있는 경우 -> 큰따옴표 (" ") 를 이용하여 데이터를 감싼다 • 장점 : 같은 데이터를 저장하는 데 용량을 적게 소모함 • 단점 : 데이터 오염에 취약함 csv 데이터 읽고 처리하기 # csv 모듈을 임포트합니다. import csv def print_book_info(filename): with open(filename) as file: # ',' 기호로 분리된 CSV 파일을 처리하세요.. reader = csv.reader(file, delimiter=',') # 처리된 파일의 각 줄을 불러옵니다. for row in reader: # 함수를 완성.. 2022. 4. 3.
[python] operator.itemgetter operator.itemgetter(item) 정의 :피연산자의__getitem__() 메서드를 사용하여 피연산자에서 item을 꺼내는 콜러블 객체를 반환합니다. 여러 항목이 지정되면, 조회 값의 튜플을 반환합니다. 핵심 callable 한 객체 반환 -> 객체에 접근하기 위해 리스트, 딕셔너리 이용 from operator import itemgetter 선언 정렬(sorted)에 사용빈도 높음 정의는 이해하기가 힘들지만 내가 이해한 바로는 item에 값이 아닌 인덱스 정보가 들어가서 해당 인덱스에 맞는 호출 가능한 객체를 반환하는 것으로 이해했다. 또, 여러 인덱스가 지정이 되면 반환 값으로 해당하는 인덱스들의 데이터들을 튜플로 반환한다. f = itemgetter(2) 다음에, f(r) 호출은 r[.. 2022. 4. 1.