Pandas를 이해하고 계실 독자여러분!!
db에 대하여 익숙하신가요!?
Database의 약자인 DB.
사실 저는 아직도 DB 보다는 csv로 저장하는 것이 편한것 같아요!!^^;
db로 저장되면 어디에 어떻게 저장된지도 모르겠고
어렵게 코드를 써서 확인이 가능하지요!
반면 CSV로 저장하면 파일이 생기는것을 바로바로 볼수도 있고
메모장 혹은 엑세로 열어보아 내용도 확인할 수 있어
익숙하고 편리하여 참 좋은것 같은데요~!
이후
△ 점점 데이터가 커지고
△ 여러 프로세스에서 동시에 접근해야하고
△ 문장, dictionary 등 데이터 양식 다양화
등의 문제로 Database에 저장하는것의 장점이 발생하게됩니다!
실제 비트코인은 levelDB 이더리움은 rocksdb를 사용하고있습니다!
우리는 파이썬에서 쉽게 활용할 수 있는
mysql 형식의 sqlite3 DB를 활용할 에정이구요!
이번 챕터에서는 csv저장과 비교해보며 학습해보겠습니다!
우선 Pandas로 간단한 거래내역을 dataframe을 만들고
csv로 저장한 뒤 다시 읽어 보아요!
import pandas as pd
df = pd.DataFrame()
df['seller'] = pd.Series(['tom','james','kaka'])
df['buyer'] = pd.Series(['pepe','alex','mike'])
df['amount'] = pd.Series([10,30,20])
df.to_csv('sample_transaction.csv')
pd.read_csv('sample_transaction.csv',index_col=0)
파일이 sample.csv로 잘 저장되고, 저장했던 파일이 잘 읽어와 짐을 확인할 수 있는데요~!
같은 내용을 sqlite3를 활용하여 DB에 저장해보겠습니다!
import sqlite3
conn = sqlite3.connect('sample.db')
df = pd.DataFrame()
df['seller'] = pd.Series(['tom','james','kaka'])
df['buyer'] = pd.Series(['pepe','alex','mike'])
df['amount'] = pd.Series([10,30,20])
df.to_sql('test_transaction', conn)
df = pd.read_sql_query("SELECT * FROM test_transaction ", conn)
df
위와 같은 코드를 통하여 실제로 sample.db라는 피일이 생기고
데이터를 알맞게 불러올수 있음을 확인할 수 있었습니다!
또한 SQL 쿼리문을 통하여 필요한 데이터만을 불러올 수도 있지요!
sqlite3를 통하여 어떻게 데이터를 저장하고 불러오는지, 이해가 되셨나요!?
최종적으로 정리하자면 아래와 같이 3부분으로 구성이 됩니다!!
1. DB 접속하기
import sqlite3
# conn 이라는 변수에 connection을 둡니다!
conn = sqlite3.connect('sample.db')
2. DataFrame을 Table에 저장하기 ( csv 파일 저장하기와 유사)
df = pd.DataFrame()
df['seller'] = pd.Series(['tom','james','kaka'])
df['buyer'] = pd.Series(['pepe','alex','mike'])
df['amount'] = pd.Series([10,30,20])
# conn의 connection에서 test_transaction라는 Table을 저장합니다
df.to_sql('test_transaction', conn)
3. 쿼리문을 Table 에서 DataFrame불러오기
# con 의 connection 에 쿼리문(test테이블에서seller = 'tom'인 데이터를 불러와라)을 사용해서 데이터 호출
df = pd.read_sql_query("SELECT * FROM test_transaction where seller = 'tom' ", conn)
df
'블록체인 > [파공블]파이썬으로 공부하는 블록체인' 카테고리의 다른 글
0. Python 기초 - 홈페이지 꾸미기 (javascript) (0) | 2022.06.10 |
---|---|
0. Python 기초 - 내 홈페이지 만들기(Flask) (0) | 2022.06.09 |
[파공블] 0. Python 기초 - 객체만들기 (0) | 2022.06.08 |
[파공블] 0. Python 기초 - 함수만들기 (0) | 2022.06.07 |
[파공블] 0. Python 기초 - 준비사항 (0) | 2022.06.07 |
댓글