[SQL, Python] Python with CSV

박미영·2023년 4월 25일
0

📌Python with CSV

- python with CSV 예제 1

  • csv에 있는 데이터를 python으로 INSERT
  1. police_station.csv를 pandas로 읽어오기
import pandas as pd
df = pd.read_csv('police_station.csv')
df.tail()



  1. zerobase 데이터베이스 연결
import mysql.connector

conn = mysql.connector.connect(
    host= "AWS엔드포인트",
    port = 3306,
    user = "zero",
    password = "zerobase",
    database = "zerobase"
)



  1. cursor 만들기
  • 읽어올 양이 많은 경우 buffer 설정을 해준다.
cursor = conn.cursor(buffered=True)



  1. INSERT문 만들기
sql = "insert into police_station values (%s, %s)"



  1. 데이터 입력
  • commit()은 database에 적용하기 위한 명령
for i, row in df.iterrows():
    print(tuple(row))


for i, row in df.iterrows():
    cursor.execute(sql, tuple(row))
    print(tuple(row))
    conn.commit()



  1. 결과 확인
cursor.execute("select * from police_station")

result = cursor.fetchall()

for row in result:
    print(row)



  1. 검색결과 pandas로 읽기
df = pd.DataFrame(result)
df.tail()





- python with CSV 예제 2

  • crime_status 테이블에 2020_crime.csv를 입력하는 코드를 작성
import mysql.connector

conn = mysql.connector.connect(
    host= "AWS엔드포인트",
    port = 3306,
    user = "zero",
    password = "zerobase",
    database = "zerobase"
)



  1. 2020_crime.csv 데이터(encoding="euc-kr")읽어오기
import pandas as pd

df = pd.read_csv("2020_crime.csv", encoding="euc-kr")
df.head()



  1. insert 쿼리 작성
sql = "insert into crime_status values('2020', %s, %s, %s, %s)"
cursor = conn.cursor(buffered=True)



  1. 데이터를 crime_status 테이블에 insert
for i, row in df.iterrows():
    cursor.execute(sql, tuple(row))
    print(tuple(row))
    conn.commit()




  1. crime_status 테이블의 데이터 조회
cursor.execute("select * from crime_status")

result = cursor.fetchall()
for row in result:
    print(row)
    



  1. 조회 결과를 pandas로 변환해서 확인
df = pd.DataFrame(result)
df.head()





- python with CSV 예제 3

  1. AWS RDS(database-1) zerobase 에 접속
import mysql.connector
conn = mysql.connector.connect(
    host= "AWS엔드포인트",
    port = 3306,
    user = "zero",
    password = "zerobase",
    database = "zerobase"
);



  1. cctv Table 을 생성
  • 데이터 구성 확인
import pandas as pd

df = pd.read_csv('Seoul_CCTV.csv', encoding="utf-8")
df.head()

  • table 생성
sql = "CREATE TABLE cctv (기관명 varchar(8), 소계 int, 2013년도이전 int, 2014년 int, 2015년 int, 2016년 int)"
cursor = conn.cursor(buffered=True)
cursor.execute(sql)




  1. 데이터를 cctv 테이블에 insert
sql = "insert into cctv values (%s, %s, %s, %s, %s, %s)"
cursor = conn.cursor(buffered=True)

for i, row in df.iterrows():
    cursor.execute(sql, tuple(row))
    print(tuple(row))
    conn.commit()



  1. 테이블에 저장한 데이터 확인
cursor.execute("select * from cctv")

result = cursor.fetchall()
for row in result:
    print(row)



  1. 판다스로 데이터 나타내기
df = pd.DataFrame(result)
df.head()




"이 글은 제로베이스 데이터 취업 스쿨 강의를 듣고 작성한 내용으로 제로베이스 데이터 취업 스쿨 강의 자료 일부를 발췌한 내용이 포함되어 있습니다."

0개의 댓글