Bạn đang cố tạo cơ sở dữ liệu từ tệp excel?
Chuyển đổi tệp Excel thành bảng cơ sở dữ liệu trong Python
Cách dễ nhất để chuyển đổi tệp excel thành bảng cơ sở dữ liệu trong python là sử dụng df. hàm to_sql[]. df. to_sql[] trong python chuyển đổi khung dữ liệu thành cơ sở dữ liệu SQLite. Nhưng trước tiên, bạn phải chuyển đổi tệp excel của mình sang khung dữ liệu
Thực hiện theo các bước sau để chuyển đổi tệp Excel thành cơ sở dữ liệu Sqlite
Bước số 1. Chuyển đổi tệp Excel thành Dataframe
Bước đầu tiên trong quá trình chuyển đổi tệp Excel sang cơ sở dữ liệu SQLite là chuyển đổi tệp excel thành khung dữ liệu. Cách tốt nhất để chuyển đổi tệp Excel thành khung dữ liệu là sử dụng hàm read_excel[]. Hàm read_excle[] trong mô-đun pandas python chuyển đổi tệp excel thành khung dữ liệu pandas
import pandas as pd
import sqlite3
df = pd.read_excel['excel_file.xls']
print[df]
Bước số 2. Chuyển đổi Dataframe sang cơ sở dữ liệu SQL
Khi chúng tôi có khung dữ liệu gấu trúc, chúng tôi có thể sử dụng lệnh df. hàm to_sql[] để chuyển đổi khung dữ liệu thành cơ sở dữ liệu SQL
Dưới đây là code chuyển file excel sang cơ sở dữ liệu sqlite bằng pandas
import pandas as pd
import sqlite3
db = sqlite3.connect['sqlite.db']
dfs = pd.read_excel['excel_file.xls', sheet_name=None]
for table, df in dfs.items[]:
df.to_sql[table, db]
print[f'{df} inserted successfully']
Đầu ra của mã.
inserted successfully
Chuyển đổi nhiều sổ làm việc Excel thành bảng cơ sở dữ liệu trong Python
Đây là phương pháp tốt nhất để chuyển đổi một tệp excel có nhiều sổ làm việc. Đầu tiên, lấy tên của sổ làm việc và sau đó chèn chúng vào cơ sở dữ liệu
Kiểm tra đoạn mã sau để chuyển đổi tệp excel sang cơ sở dữ liệu SQLite
import sqlite3
import pandas as pd
con=sqlite3.connect['database.db']
wb=pd.ExcelFile['excel_file.xls']
for sheet in wb.sheet_names:
df=pd.read_excel['excel_file.xls',sheet_name=sheet]
df.to_sql[sheet,con, index=False,if_exists="replace"]
con.commit[]
con.close[]
Tóm tắt và Kết luận
Chúng tôi đã học cách chuyển đổi tệp excel thành bảng cơ sở dữ liệu trong python. Đây là hai cách tốt nhất để hoàn thành công việc. Nếu bạn có bất kỳ câu hỏi xin vui lòng cho tôi biết trong phần bình luận
Tôi vừa hoàn thành một kịch bản Python cơ bản cho một khách hàng mà tôi muốn chia sẻ với bạn. Anh ấy cần một phương tiện dễ dàng để di chuyển dữ liệu qua lại giữa MySQL và Excel, và đôi khi anh ấy cần thực hiện một chút thao tác trong quá trình này. Trước đây tôi có thể chỉ dựa vào VBA để làm việc này, nhưng tôi thấy nó dễ dàng hơn nhiều với Python. Trong bài đăng này và video đi kèm, tôi chỉ hiển thị một phần của dự án - nhập dữ liệu từ Excel vào MySQL qua Python. Bắt đầu nào
Hãy chắc chắn kiểm tra video đi kèm
Tải xuống các phụ thuộc
Giả sử bạn đã cài đặt Python [Tôi đang sử dụng phiên bản 2. 7], tải xuống và cài đặt thư viện xlrd và mô-đun MySQLdb-
Nếu bạn đang tìm kiếm một tập lệnh đơn giản để trích xuất dữ liệu từ tệp excel và đặt nó vào bảng SQL, bạn đã đến đúng nơi. Trong bài viết này, tôi sẽ hướng dẫn các bạn cách sử dụng python pandas và sqlalchemy để nhập tệp excel vào cơ sở dữ liệu SQL [MySQL] một cách miễn phí, nhanh chóng và linh hoạt. Phương pháp tương tự cũng hoạt động đối với SQLite hoặc cơ sở dữ liệu SQL khác, nhưng chi tiết kết nối sẽ khác
Tệp Excel
Tệp Excel ở trên là những gì chúng tôi sẽ nhập. Nó là một tệp bốn cột được sắp xếp gọn gàng chứa đầy dữ liệu giả được tạo ngẫu nhiên về mọi người
Đảm bảo các gói cần thiết được cài đặt
Để điều này hoạt động bình thường, hãy đảm bảo bạn đã cài đặt các gói cần thiết và đang sử dụng Python 3. các gói là. pandas, xlrd, sqlalchemy
. Nếu bạn thiếu những thứ này, hãy cài đặt chúng với pip install [package]
Nếu sử dụng Ubuntu, bạn cũng có thể cần đảm bảo gói python3-mysqldb được cài đặt với sudo apt install python3-mysqldb
Nhập tệp Excel bằng Python
Bước đầu tiên là nhập tệp Excel vào python dưới dạng khung dữ liệu gấu trúc. Đối với điều này, chúng tôi sử dụng chức năng
import pandas as pd
import sqlite3
db = sqlite3.connect['sqlite.db']
dfs = pd.read_excel['excel_file.xls', sheet_name=None]
for table, df in dfs.items[]:
df.to_sql[table, db]
print[f'{df} inserted successfully']
0. Hàm chấp nhận nhiều tùy chọn để xử lý các tệp Excel phức tạp hơn. Xem tài liệu để cho biết thêm thông tin chi tiết. Trong trường hợp của tôi, chức năng có thể nhập tệp excel mà không cần thêm bất kỳ tham số nàoimport pandas as pd df = pd.read_excel['NameNumbers.xlsx'] df.head[]TênHọTuổiSố điện thoại0ThersaFullington43183-130-52881SiuHopf54957-849-26202GingerEland32236-726-47473PrestonPutz41887-311-91464NovellaRobichaux37797-363-5038
Chèn DataFrame dưới dạng Bảng SQL
Bây giờ dữ liệu trong Python dưới dạng khung dữ liệu, chúng ta cần ghi khung dữ liệu đó vào bảng SQL. Trong trường hợp này, tôi đang kết nối với cơ sở dữ liệu MySQL có tên là contact. Tôi sẽ viết vào một bảng có tên người, bảng này không tồn tại trước khi chạy tập lệnh này. Bảng được tạo bằng hàm to_sql. Giống như hàm read_excel, có sẵn nhiều tùy chọn để tùy chỉnh đầu ra [bao gồm thêm hoặc thay thế các bảng hiện có]. Xem tài liệu để cho biết thêm thông tin chi tiết
from sqlalchemy import create_engine # format: mysql://user:pass@host/db engine = create_engine['mysql://ryan:ryan@localhost/contacts'] df.to_sql['people', con=engine]
Đó là tất cả những gì nó cần để viết bảng. Chúng ta có thể thấy rằng mọi thứ diễn ra theo đúng kế hoạch với ảnh chụp màn hình HeidiSQL bên dưới
Chỉ định loại dữ liệu, nối thêm bảng và tắt chỉ mục
Hành vi mặc định của hàm sẽ hoạt động tốt cho nhiều mục đích sử dụng, nhưng nếu bạn muốn thêm vào một bảng hiện có, bạn sẽ muốn thực hiện một số thay đổi
from sqlalchemy.types import String, SmallInteger ... df.to_sql['people', con=engine, if_exists='append', index=False, dtype={'First Name': String[length=255], 'Last Name': String[length=255], 'Age': SmallInteger, 'Phone Number': String[length=255]}]
Đoạn mã trên yêu cầu gấu trúc nối thêm nếu bảng tồn tại, không bao gồm các chỉ mục mà nó tạo [bạn có thể thêm một chỉ mục trong SQL, như được hiển thị trong video YouTube] và chỉ định các loại dữ liệu sẽ sử dụng thay cho các loại dữ liệu có thể có