Hướng dẫn csv to sql python - csv sang sql python

Ở bài viết trước mình đã giới thiệu sơ lược về thư viện Pandas và cấu trúc dữ liệu cơ bản của nó, các bạn có thể tham khảo tại đây. Trong bài viết này mình sẽ giới thiệu sơ lược về các đọc dữ liệu từ CSV, JSON và SQL database.

Đọc dữ liệu từ CSV

Với các tệp CSV, bạn đọc dữ liệu một cách rất đơn giản bằng cách sử dụng hàm

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
9 và được trả về 1 dataframe. Bắt đầu với một bộ dữ liệu demo đơn giản, được gọi là purchases, và mình sẽ tạo ra một file là purchases.csv và dưới đây là dữ liệu thô của nó

name,apples,oranges
June,3,0
Robert,2,3
Lily,0,7
David,1,2
#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df

Output:

    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2

CSV không có index giống như DataFrames, vì vậy tất cả những gì chúng ta cần làm chỉ là chỉ định index_col khi đọc:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv', index_col=0]
print df

Output:

name	apples	oranges
June	3	    0
Robert	2	    3
Lily	0	    7
David	1	    2

Ở đây chúng ta đặt index là cột không. Hàm

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
9 có một vài tham số như:

  • encoding: chỉ định encoding của file đọc vào. Mặc định là utf-8.
  • sep: thay đổi dấu ngăn cách giữa các cột. Mặc định là dấu phẩy [‘,’]
  • header: chỉ định file đọc vào có header[tiêu đề của các cột] hay không. Mặc định là infer.
  • index_col: chỉ định chỉ số cột nào là cột chỉ số[số thứ tự]. Mặc định là None.
  • n_rows: chỉ định số bản ghi sẽ đọc vào. Mặc định là None – đọc toàn bộ.

Bạn có thể tham khảo đầy đủ các tham số tại đây

Đọc dữ liệu từ JSON

Nếu bạn có một tệp JSON - về cơ bản là một

    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2
1 Python được lưu trữ -oandas có thể đọc nó dễ dàng như sau:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_json['purchases.json']
print df

Output:

name	apples	oranges
June	3	    0
Robert	2	    3
Lily	0	    7
David	1	    2

Lưu ý lần này index đi kèm với chúng ta một cách chính xác vì sử dụng các index cho phép JSON hoạt động thông qua nesting.

Pandas sẽ cố gắng tìm ra cách tạo DataFrame bằng cách phân tích cấu trúc JSON của bạn và đôi khi điều đó không đúng. Thông thường, bạn sẽ cần đặt đối số

    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2
2 tùy thuộc vào cấu trúc, vậy nên hãy tham khảo đầy đủ các tham số của
    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2
3 tại đây

Đọc dữ liệu từ SQL database

Nếu bạn làm việc với dữ liệu từ cơ sở dữ liệu SQL, trước tiên bạn cần thiết lập kết nối bằng thư viện Python thích hợp, sau đó chuyển truy vấn đến pandas. Ở đây chúng tôi sẽ sử dụng SQLite để chứng minh.

Đầu tiên, chúng ta cần cài đặt pysqlite3, chạy

    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2
4nếu sử dụng tool pip

    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2
5 được sử dụng để tạo kết nối tới cơ sở dữ liệu mà sau đó chúng ta có thể sử dụng để tạo DataFrame thông qua truy vấn
    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2
6.

Vì vậy, trước tiên chúng ta sẽ tạo kết nối đến tệp cơ sở dữ liệu SQLite:

import sqlite3
con = sqlite3.connect["database.db"]

Lưu ý: Nếu bạn có dữ liệu trong PostgreSQL, MySQL hoặc một SQL server khác, bạn sẽ cần lấy đúng thư viện Python để tạo kết nối. Ví dụ

    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2
7 là một thư viện thường được sử dụng để tạo kết nối tới PostgreSQL bạn có thể tham khảo tại đây. Hơn nữa, bạn sẽ tạo kết nối đến URI cơ sở dữ liệu thay vì tệp như chúng tôi đã làm ở đây với SQLite.

Trong cơ sở dữ liệu SQLite này, chúng tôi có một bảng gọi là purchases và chỉ mục của chúng tôi nằm trong một cột có tên là "name"

Bằng cách truyền truy vấn

    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2
6 và connect
    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2
9, chúng ta có thể đọc từ bảng purchases

df = pd.read_sql_query["SELECT * FROM purchases", con]
print df

Output:

    name	apples	oranges
0	June	3	    0
1	Robert	2	    3
2	Lily	0	    7
3	David	1	    2

Giống như với CSV, chúng ta có thể pass

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv', index_col=0]
print df
0, nhưng chúng ta cũng có thể thiết lập một index sau

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
0

Output:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
1

Thực tế, chúng ta có thể sử dụng

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv', index_col=0]
print df
1 trên bất kỳ DataFrame nào bằng bất kỳ cột nào vào bất kỳ lúc nào. Indexing Series và DataFrames là một nhiệm vụ rất phổ biến, và những cách khác nhau để làm điều đó là đáng nhớ.

Tài liệu tham khảo

Python Pandas Tutorial: A Complete Introduction for Beginners

Bước 2: Nhập tệp CSV vào DataFrame

  • Bạn có thể sử dụng thư viện Pandas để nhập tệp CSV vào DataFrame.
  • Dưới đây là mã để nhập tệp CSV cho ví dụ của chúng tôi [lưu ý rằng bạn sẽ cần thay đổi đường dẫn để phản ánh vị trí nơi tệp CSV được lưu trên máy tính của bạn]:

Đây là cách mà DataFrame sẽ trông như thế nào trong Python:

Để bắt đầu, hãy chuẩn bị tệp CSV mà bạn muốn nhập vào SQL Server.

Ví dụ, hãy để giả sử rằng một tệp CSV đã được chuẩn bị, trong đó:

  • Tên tệp CSV là ‘Sản phẩm‘products’
  • Tệp CSV được lưu trữ theo đường dẫn sau: C: \ Users \ ron \ Desktop \ test \ Products.csvC:\Users\Ron\Desktop\Test\products.csv

Ngoài ra, tệp CSV chứa các dữ liệu sau:

product_id product_name giá bán
1 Máy tính xách tay1200
2 Máy in200
3 Máy tính bảng350
4 Bàn phím80
5 Màn hình400

Bước 2: Nhập tệp CSV vào DataFrame

Bạn có thể sử dụng thư viện Pandas để nhập tệp CSV vào DataFrame.

Dưới đây là mã để nhập tệp CSV cho ví dụ của chúng tôi [lưu ý rằng bạn sẽ cần thay đổi đường dẫn để phản ánh vị trí nơi tệp CSV được lưu trên máy tính của bạn]:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
2

Đây là cách mà DataFrame sẽ trông như thế nào trong Python:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
3

Bước 3: Kết nối Python với SQL Server

Để kết nối Python với SQL Server, bạn sẽ cần:

  • Tên máy chủ. Đối với mục đích trình diễn, hãy để giả sử rằng tên máy chủ là: ron \ sqlexpressRON\SQLEXPRESS
  • Tên cơ sở dữ liệu. Tên cơ sở dữ liệu cho ví dụ của chúng tôi sẽ là: test_databasetest_database

Dưới đây là mã để kết nối Python với SQL cho ví dụ của chúng tôi:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
4

Bạn có thể muốn kiểm tra hướng dẫn sau đây giải thích các bước đầy đủ để kết nối Python với SQL Server bằng PYODBC.

Bước 4: Tạo bảng trong SQL Server bằng Python

Tiếp theo, thêm cú pháp để tạo bảng trong SQL Server. Bảng này sẽ được sử dụng để lưu trữ dữ liệu đã nhập từ tệp CSV.

Ví dụ của chúng tôi, bạn có thể thêm cú pháp sau để tạo ‘Sản phẩm‘ Bảng:products‘ table:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
5

Lưu ý rằng bất cứ khi nào bạn chạy mã để tạo bảng. Bạn chỉ nên sử dụng đoạn mã đó một lần. Nếu không, bạn sẽ gặp lỗi bên dưới: that whenever you run the code to create a table. You should only use that piece of the code once. Otherwise, you’ll get the error below:

Lập trình HERROR: [xông 42S01, [[42S01] [Microsoft] [Trình điều khiển máy chủ ODBC SQL] [SQL Server] đã có một đối tượng có tên ‘Sản phẩm trong cơ sở dữ liệu. [2714] [sqlexecdirectw]

Bước 5: Chèn dữ liệu DataFrame vào bảng

Dưới đây là cú pháp để chèn dữ liệu DataFrame [từ bước 2] vào bảng sản phẩm:products table:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
6

Và đây là toàn bộ mã để nhập tệp CSV vào SQL Server bằng Python:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
7

Chạy mã trong Python [sau khi thực hiện điều chỉnh đường dẫn nơi lưu trữ tệp CSV của bạn, cũng như thực hiện thay đổi thông tin kết nối cơ sở dữ liệu của bạn].

Bước 6: Thực hiện bài kiểm tra

Hãy để chạy một truy vấn đơn giản để kiểm tra xem các giá trị từ tệp CSV đã được nhập vào SQL Server:

#Khai báo thư viện pandas và khai báo nó là pd
import pandas as pd
df = pd.read_csv['purchases.csv']
print df
8

Đây là kết quả:

product_id product_name giá bán
1 Máy tính xách tay1200
2 Máy in200
3 Máy tính bảng350
4 Bàn phím80
5 Màn hình400

Bài Viết Liên Quan

Chủ Đề