新聞中心
在數(shù)據(jù)分析的過程中,使用 pandas 是必不可少的。pandas 提供了豐富的功能來處理和分析數(shù)據(jù),其中一個比較實用的功能是將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫表中。本文將介紹如何使用 pandas 輕松地將數(shù)據(jù)插入到數(shù)據(jù)庫表中。

創(chuàng)新互聯(lián)是專業(yè)的潮陽網(wǎng)站建設(shè)公司,潮陽接單;提供網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行潮陽網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
一、準(zhǔn)備數(shù)據(jù)庫和數(shù)據(jù)
在本文中,我們將以 MySQL 數(shù)據(jù)庫為例介紹將數(shù)據(jù)插入到數(shù)據(jù)庫表中的方法。需要準(zhǔn)備好 MySQL 數(shù)據(jù)庫,并創(chuàng)建一個表用于存儲數(shù)據(jù)。在這里,我們創(chuàng)建一個名為“employees”的表,用于存儲員工信息。
CREATE TABLE employees (
emp_no INT NOT NULL,
birth_date DATE NOT NULL,
first_name VARCHAR(14) NOT NULL,
last_name VARCHAR(16) NOT NULL,
gender ENUM(‘M’,’F’) NOT NULL,
hire_date DATE NOT NULL,
PRIMARY KEY (emp_no)
);
接下來,準(zhǔn)備一份包含員工信息的 CSV 文件,用于導(dǎo)入數(shù)據(jù)。在這里,我們使用的是經(jīng)典的“Employees Sample Database”,該數(shù)據(jù)集包含了來自雇員數(shù)據(jù)庫的完整數(shù)據(jù)。
二、連接數(shù)據(jù)庫
在將數(shù)據(jù)插入到數(shù)據(jù)庫表中之前,需要先連接到數(shù)據(jù)庫。pandas 支持連接到多種數(shù)據(jù)庫,包括 MySQL、SQLite、PostgreSQL 等。在這里,我們以 MySQL 為例進行介紹。
需要安裝 MySQL 驅(qū)動程序??梢酝ㄟ^ pip 安裝 mysql-connector-python 驅(qū)動程序。
pip install mysql-connector-python
接下來,使用以下代碼連接到 MySQL 數(shù)據(jù)庫。
import mysql.connector
mydb = mysql.connector.connect(
host=”localhost”,
user=”yourusername”,
password=”yourpassword”,
database=”yourdatabase”
)
cursor = mydb.cursor()
注:將“yourusername”、“yourpassword”和“yourdatabase”替換為您的 MySQL 用戶名、密碼和數(shù)據(jù)庫名。
三、讀取數(shù)據(jù)
在連接到數(shù)據(jù)庫之后,需要讀取數(shù)據(jù)并將其存儲到 pandas 數(shù)據(jù)框中??梢允褂?pandas 的 read_csv() 函數(shù)讀取 CSV 文件,并存儲為 pandas 數(shù)據(jù)框。
import pandas as pd
data = pd.read_csv(’employees.csv’)
四、數(shù)據(jù)清理和轉(zhuǎn)換
在將數(shù)據(jù)插入到數(shù)據(jù)庫中之前,可能需要對數(shù)據(jù)進行一些清理和轉(zhuǎn)換。在這里,我們需要將數(shù)據(jù)轉(zhuǎn)換為符合數(shù)據(jù)庫表的格式。具體來說,我們需要進行以下操作:
– 將列名修改為數(shù)據(jù)庫表的列名
– 將日期類型轉(zhuǎn)換為 MySQL 的 DATE 類型
– 將字符串類型轉(zhuǎn)換為 ENUM 類型
以下是代碼示例:
# 將列名修改為數(shù)據(jù)庫表的列名
data.rename(columns={’emp_no’: ‘EmployeeNumber’, ‘birth_date’: ‘BirthDate’, ‘first_name’: ‘FirstName’, ‘last_name’: ‘LastName’, ‘gender’: ‘Gender’, ‘hire_date’: ‘HireDate’}, inplace=True)
# 將日期類型轉(zhuǎn)換為 MySQL 的 DATE 類型
data[‘BirthDate’] = pd.to_datetime(data[‘BirthDate’]).dt.strftime(‘%Y-%m-%d’)
data[‘HireDate’] = pd.to_datetime(data[‘HireDate’]).dt.strftime(‘%Y-%m-%d’)
# 將字符串類型轉(zhuǎn)換為 ENUM 類型
data[‘Gender’] = data[‘Gender’].map({‘M’: ‘Male’, ‘F’: ‘Female’})
五、插入數(shù)據(jù)
現(xiàn)在,我們已經(jīng)準(zhǔn)備好了要插入表的數(shù)據(jù),接下來需要將數(shù)據(jù)插入到數(shù)據(jù)庫表中??梢允褂?pandas 的 to_sql() 函數(shù)將數(shù)據(jù)插入到數(shù)據(jù)庫表中。以下是代碼示例:
table_name = ’employees’
data.to_sql(name=table_name, con=mydb, if_exists=’append’, index=False)
以上代碼將數(shù)據(jù)插入到名為“employees”的表中。
六、檢查數(shù)據(jù)
在將數(shù)據(jù)插入到數(shù)據(jù)庫表中之后,最后一步是檢查數(shù)據(jù)是否已成功插入??梢允褂靡韵麓a從數(shù)據(jù)庫中讀取數(shù)據(jù),并將其存儲為 pandas 數(shù)據(jù)框。
query = “SELECT * FROM employees”
cursor.execute(query)
data = pd.DataFrame(cursor.fetchall(), columns=[‘EmployeeNumber’, ‘BirthDate’, ‘FirstName’, ‘LastName’, ‘Gender’, ‘HireDate’])
print(data)
以上代碼將從 database 表中檢索數(shù)據(jù),并將其存儲為 pandas 數(shù)據(jù)框。我們可以使用 print() 函數(shù)檢查結(jié)果是否正確。
七、
本文介紹了如何使用 pandas 輕松地將數(shù)據(jù)插入到 MySQL 數(shù)據(jù)庫表中。通過連接數(shù)據(jù)庫、讀取數(shù)據(jù)、數(shù)據(jù)清理和轉(zhuǎn)換以及插入數(shù)據(jù)等步驟,我們可以輕松地將數(shù)據(jù)插入到數(shù)據(jù)庫中,并且可以輕松地檢查數(shù)據(jù)是否已成功插入。pandas 提供了功能強大、易于使用的工具,使得數(shù)據(jù)分析和數(shù)據(jù)處理變得更加容易。如果您正在使用 pandas 進行數(shù)據(jù)分析,那么將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫表中可能是非常實用的一種技能。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220python pandas to_sql將excel數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫
其實吧, 一分鐘10W條數(shù)據(jù)不能算太快,10秒10W條還差不多。 可以研究一下線程+進程來處理, 或者協(xié)程+進程。處理速度肯定能讓你喊一聲“!” 哈哈。
言歸正傳, 你說的別的MySQL是不是遠程的,通過ip來連接的哈, 如果是的話那就可以理解了。 每次連接一次數(shù)據(jù)庫,都有一個網(wǎng)絡(luò)延遲的,2臺電腦之間距離越遠,這個延遲就越高,而每次導(dǎo)入數(shù)據(jù)的時間必須要加上這個延遲的時間的, 而本地測試的時候因為連接數(shù)據(jù)庫的時間延遲基本可以忽略不計,所以速度要比連接遠程數(shù)據(jù)庫要快很多很多。
最后, 如果想要解決這個問題的話,要么把業(yè)務(wù)數(shù)據(jù)庫移到本地,去掉時間延遲。 要么就用我上面說的線程+進程 或者 協(xié)程+進扮陵豎程的方式提高程序效率。如果無法把業(yè)務(wù)數(shù)據(jù)廳大庫移到本地的話, 我非常推薦后者,成本也就是多學(xué)一點東西而已, 但以后可以省下非常多的時間汪坦, 效率為王嘛~
關(guān)于pandas 插入數(shù)據(jù)庫表的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技有限公司,經(jīng)過多年的不懈努力,公司現(xiàn)已經(jīng)成為一家專業(yè)從事IT產(chǎn)品開發(fā)和營銷公司。廣泛應(yīng)用于計算機網(wǎng)絡(luò)、設(shè)計、SEO優(yōu)化、關(guān)鍵詞排名等多種行業(yè)!
文章名稱:使用pandas輕松插入數(shù)據(jù)庫表(pandas插入數(shù)據(jù)庫表)
鏈接地址:http://fisionsoft.com.cn/article/djijgcp.html


咨詢
建站咨詢
