https://datatofish.com/import-csv-sql-server-python/
Import a CSV File to SQL Server using Python - Data to Fish
In this guide, you'll see how to import a CSV file to SQL Server using Python. Both Pandas and Pyodbc will be used to accomplish this task.
datatofish.com
Python 을 사용하여 CSV 파일을 SQL Server로 가져오는 방법은 여러 가지가 있습니다 .
다음 2개의 Python 라이브러리를 사용하여 데이터를 가져오는 간단한 기술을 볼 수 있습니다.
- Pandas – CSV 파일을 Python으로 가져오고 DataFrame을 만드는 데 사용됩니다.
- Pyodbc – Python을 SQL Server에 연결하는 데 사용
Python을 사용하여 CSV 파일을 SQL Server로 가져오는 단계
1단계: CSV 파일 준비
시작하려면 SQL Server로 가져올 CSV 파일을 준비합니다.
예를 들어 CSV 파일이 준비되었다고 가정해 보겠습니다.
- CSV 파일 이름은 'products'입니다.
- CSV 파일은 C:\Users\사용자명\Desktop\Test\products.csv 경로에 저장됩니다.
또한 CSV 파일에는 다음 데이터가 포함됩니다.
product_id | product_name | price |
1 | 랩탑 | 1200 |
2 | 인쇄기 | 200 |
3 | 태블릿 | 350 |
4 | 건반 | 80 |
5 | 감시 장치 | 400 |
2단계: CSV 파일을 DataFrame으로 가져오기
Pandas 라이브러리를 사용 하여 CSV 파일을 DataFrame으로 가져올 수 있습니다.
다음은 예제에서 CSV 파일을 가져오는 코드입니다(컴퓨터에서 CSV 파일이 저장된 위치를 반영하도록 경로를 변경해야 합니다 ).
import pandas as pd
data = pd.read_csv(r'C:\Users\사용자이름\Desktop\Test\products.csv')
df = pd.DataFrame(data)
print(df)
Python 에서 DataFrame 은 다음과 같이 표시됩니다.
product_id product_name price
0 1 Laptop 1200
1 2 Printer 200
2 3 Tablet 350
3 4 Keyboard 80
4 5 Monitor 400
3단계: Python을 SQL Server에 연결
Python을 SQL 서버에 연결하려면 다음이 필요합니다.
- 서버 이름 . 데모를 위해 서버 이름이 RON\SQLEXPRESS 라고 가정하겠습니다.
- 데이터베이스 이름 . 이 예의 데이터베이스 이름은 다음과 같습니다. test_database
다음은 예제에서 Python을 SQL에 연결하는 코드입니다.
import pyodbc
conn = pyodbc.connect('Driver={SQL Server};'
'Server=RON\SQLEXPRESS;'
'Database=test_database;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
pyodbc를 사용하여 Python을 SQL Server에 연결 하는 전체 단계를 설명하는 다음 가이드를 확인하는 것이 좋습니다.
4단계: Python을 사용하여 SQL Server에서 테이블 만들기
다음 으로 SQL Server에서 테이블을 생성 하는 구문을 추가합니다 . 이 테이블은 CSV 파일에서 가져온 데이터를 저장하는 데 사용됩니다.
이 예에서는 다음 구문을 추가하여 ' products ' 테이블을 생성할 수 있습니다.
cursor.execute('''
CREATE TABLE products (
product_id int primary key,
product_name nvarchar(50),
price int
)
''')
코드 를 실행할 때마다 테이블을 생성할 수 있습니다. 해당 코드를 한 번만 사용해야 합니다. 그렇지 않으면 아래와 같은 오류가 발생합니다.
ProgrammingError: (’42S01′, “[42S01] [Microsoft][ODBC SQL Server Driver][SQL Server]There is already an object named ‘products’ in the database. (2714) (SQLExecDirectW)”)
5단계: 테이블에 DataFrame 데이터 삽입
다음은 제품 테이블 에 DataFrame 데이터(2단계)를 삽입하는 구문입니다 .
for row in df.itertuples():
cursor.execute('''
INSERT INTO products (product_id, product_name, price)
VALUES (?,?,?)
''',
row.product_id,
row.product_name,
row.price
)
conn.commit()
다음은 Python을 사용하여 CSV 파일을 SQL Server로 가져오는 전체 코드입니다.
import pandas as pd
import pyodbc
# Import CSV
data = pd.read_csv (r'C:\Users\Ron\Desktop\Test\products.csv')
df = pd.DataFrame(data)
# Connect to SQL Server
conn = pyodbc.connect('Driver={SQL Server};'
'Server=RON\SQLEXPRESS;'
'Database=test_database;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
# Create Table
cursor.execute('''
CREATE TABLE products (
product_id int primary key,
product_name nvarchar(50),
price int
)
''')
# Insert DataFrame to Table
for row in df.itertuples():
cursor.execute('''
INSERT INTO products (product_id, product_name, price)
VALUES (?,?,?)
''',
row.product_id,
row.product_name,
row.price
)
conn.commit()
Python 에서 코드를 실행합니다 (CSV 파일이 저장된 경로를 조정하고 데이터베이스 연결 정보를 변경한 후).
6단계: 테스트 수행
CSV 파일의 값을 SQL Server로 가져왔는지 확인하기 위해 간단한 쿼리를 실행해 보겠습니다.
제품에서 * 선택
결과는 다음과 같습니다.
product_id | product_name | price |
1 | 랩탑 | 1200 |
2 | 인쇄기 | 200 |
삼 | 태블릿 | 350 |
4 | 건반 | 80 |
5 | 감시 장치 | 400 |