亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python 利用pandas和mysql-connector獲取Excel數(shù)據(jù)寫(xiě)入到MySQL數(shù)據(jù)庫(kù)

 更新時(shí)間:2023年10月28日 09:15:30   作者:懸崖上的金魚(yú)  
在實(shí)際應(yīng)用中,我們可能需要將Excel表格中的數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫(kù)中,以便于進(jìn)行進(jìn)一步的數(shù)據(jù)分析和處理,本文將介紹如何使用Python將Excel表格中的數(shù)據(jù)插入到MySQL數(shù)據(jù)庫(kù)中,需要的朋友可以參考下

如何將Excel數(shù)據(jù)插入到MySQL數(shù)據(jù)庫(kù)中

在實(shí)際應(yīng)用中,我們可能需要將Excel表格中的數(shù)據(jù)導(dǎo)入到MySQL數(shù)據(jù)庫(kù)中,以便于進(jìn)行進(jìn)一步的數(shù)據(jù)分析和處理。本文將介紹如何使用Python將Excel表格中的數(shù)據(jù)插入到MySQL數(shù)據(jù)庫(kù)中。

導(dǎo)入必要的庫(kù)

首先,我們需要導(dǎo)入pandas庫(kù)和MySQL Connector/Python庫(kù),以便于讀取Excel文件和連接MySQL數(shù)據(jù)庫(kù)。

import pandas as pd  # 導(dǎo)入pandas庫(kù),用于讀取Excel文件和處理數(shù)據(jù)
import mysql.connector  # 導(dǎo)入MySQL Connector/Python庫(kù),用于連接MySQL數(shù)據(jù)庫(kù)

連接數(shù)據(jù)庫(kù)

接下來(lái),我們需要連接MySQL數(shù)據(jù)庫(kù)??梢酝ㄟ^(guò)MySQL Connector/Python庫(kù)提供的connect()方法來(lái)連接數(shù)據(jù)庫(kù)。

# 連接數(shù)據(jù)庫(kù)
mydb = mysql.connector.connect(
    host=host,  # 數(shù)據(jù)庫(kù)主機(jī)地址
    user=user,  # 數(shù)據(jù)庫(kù)用戶名
    password=password,  # 數(shù)據(jù)庫(kù)密碼
    database=database  # 數(shù)據(jù)庫(kù)名稱
)

其中,host、user、password和database分別是數(shù)據(jù)庫(kù)主機(jī)地址、數(shù)據(jù)庫(kù)用戶名、數(shù)據(jù)庫(kù)密碼和數(shù)據(jù)庫(kù)名稱,需要根據(jù)實(shí)際情況進(jìn)行修改。

創(chuàng)建游標(biāo)對(duì)象

連接成功后,我們需要?jiǎng)?chuàng)建游標(biāo)對(duì)象??梢酝ㄟ^(guò)MySQL Connector/Python庫(kù)提供的cursor()方法來(lái)創(chuàng)建游標(biāo)對(duì)象。

# 創(chuàng)建游標(biāo)對(duì)象
mycursor = mydb.cursor()

讀取Excel文件

接下來(lái),我們需要讀取Excel文件中的數(shù)據(jù)??梢允褂胮andas庫(kù)提供的read_excel()方法來(lái)讀取Excel文件。

# 讀取Excel文件
df = pd.read_excel(filename)

其中,filename是Excel文件的路徑,需要根據(jù)實(shí)際情況進(jìn)行修改。

將日期時(shí)間類型的列轉(zhuǎn)換為字符串類型

在將數(shù)據(jù)插入到MySQL數(shù)據(jù)庫(kù)中之前,我們需要將日期時(shí)間類型的列轉(zhuǎn)換為字符串類型??梢酝ㄟ^(guò)遍歷DataFrame中的每一列,并判斷該列的數(shù)據(jù)類型是否為日期時(shí)間類型,然后將該列的數(shù)據(jù)類型轉(zhuǎn)換為字符串類型。

# 將日期時(shí)間類型的列轉(zhuǎn)換為字符串類型
for col in df.columns:  # 遍歷DataFrame中的每一列
    if df[col].dtype == 'datetime64[ns]':  # 如果該列的數(shù)據(jù)類型是日期時(shí)間類型
        df[col] = df[col].astype(str)  # 將該列的數(shù)據(jù)類型轉(zhuǎn)換為字符串類型

遍歷Excel表格中的每一行,并將每一行插入到數(shù)據(jù)庫(kù)中

接下來(lái),我們需要遍歷Excel表格中的每一行,并將每一行插入到數(shù)據(jù)庫(kù)中。可以使用pandas庫(kù)提供的itertuples()方法來(lái)遍歷DataFrame中的每一行,并使用MySQL Connector/Python庫(kù)提供的execute()方法來(lái)執(zhí)行SQL插入語(yǔ)句。

# 遍歷Excel表格中的每一行,并將每一行插入到數(shù)據(jù)庫(kù)中
for row in df.itertuples(index=False):  # 遍歷DataFrame中的每一行
    sql = f"INSERT INTO {table} (id, 姓名, 國(guó)家, 出生日期) VALUES (%s, %s, %s, %s)"  # SQL插入語(yǔ)句
    val = row  # 插入的數(shù)據(jù)
    mycursor.execute(sql, val)  # 執(zhí)行SQL插入語(yǔ)句
    print("正在插入數(shù)據(jù):", val)  # 輸出正在插入的數(shù)據(jù)

其中,table是數(shù)據(jù)庫(kù)表名,需要根據(jù)實(shí)際情況進(jìn)行修改。

提交更改并關(guān)閉數(shù)據(jù)庫(kù)連接

最后,我們需要提交更改并關(guān)閉數(shù)據(jù)庫(kù)連接??梢允褂肕ySQL Connector/Python庫(kù)提供的commit()方法來(lái)提交更改,并使用close()方法來(lái)關(guān)閉游標(biāo)對(duì)象和數(shù)據(jù)庫(kù)連接。

# 提交更改并關(guān)閉數(shù)據(jù)庫(kù)連接
mydb.commit()  # 提交更改
mycursor.close()  # 關(guān)閉游標(biāo)對(duì)象
mydb.close()  # 關(guān)閉數(shù)據(jù)庫(kù)連接

完整代碼如下:

import pandas as pd  # 導(dǎo)入pandas庫(kù),用于讀取Excel文件和處理數(shù)據(jù)
import mysql.connector  # 導(dǎo)入MySQL Connector/Python庫(kù),用于連接MySQL數(shù)據(jù)庫(kù)

def insert_excel_data_to_mysql(filename, host, user, password, database, table):
    # 連接數(shù)據(jù)庫(kù)
    mydb = mysql.connector.connect(
        host=host,  # 數(shù)據(jù)庫(kù)主機(jī)地址
        user=user,  # 數(shù)據(jù)庫(kù)用戶名
        password=password,  # 數(shù)據(jù)庫(kù)密碼
        database=database  # 數(shù)據(jù)庫(kù)名稱
    )

    # 創(chuàng)建游標(biāo)對(duì)象
    mycursor = mydb.cursor()

    # 讀取Excel文件
    df = pd.read_excel(filename)

    # 將日期時(shí)間類型的列轉(zhuǎn)換為字符串類型
    for col in df.columns:  # 遍歷DataFrame中的每一列
        if df[col].dtype == 'datetime64[ns]':  # 如果該列的數(shù)據(jù)類型是日期時(shí)間類型
            df[col] = df[col].astype(str)  # 將該列的數(shù)據(jù)類型轉(zhuǎn)換為字符串類型

    # 遍歷Excel表格中的每一行,并將每一行插入到數(shù)據(jù)庫(kù)中
    for row in df.itertuples(index=False):  # 遍歷DataFrame中的每一行
        sql = f"INSERT INTO {table} (id, 姓名, 國(guó)家, 出生日期) VALUES (%s, %s, %s, %s)"  # SQL插入語(yǔ)句
        val = row  # 插入的數(shù)據(jù)
        mycursor.execute(sql, val)  # 執(zhí)行SQL插入語(yǔ)句
        print("正在插入數(shù)據(jù):", val)  # 輸出正在插入的數(shù)據(jù)

    # 提交更改并關(guān)閉數(shù)據(jù)庫(kù)連接
    mydb.commit()  # 提交更改
    mycursor.close()  # 關(guān)閉游標(biāo)對(duì)象
    mydb.close()  # 關(guān)閉數(shù)據(jù)庫(kù)連接

# 使用示例
filename = r'C:\\Users\\Admin\\Desktop\\重新開(kāi)始\\Python操作MySQL數(shù)據(jù)庫(kù)\\sheet1.xlsx'  # Excel文件路徑
host = "localhost"  # 數(shù)據(jù)庫(kù)主機(jī)地址
user = "root"  # 數(shù)據(jù)庫(kù)用戶名
password = "123456"  # 數(shù)據(jù)庫(kù)密碼
database = "caiwu"  # 數(shù)據(jù)庫(kù)名稱
table = "yonghu"  # 數(shù)據(jù)庫(kù)表名

insert_excel_data_to_mysql(filename, host, user, password, database, table)  # 調(diào)用函數(shù),將Excel數(shù)據(jù)插入到MySQL數(shù)據(jù)庫(kù)中

到此這篇關(guān)于Python 利用pandas和mysql-connector獲取Excel數(shù)據(jù)寫(xiě)入到MySQL數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)Python獲取Excel數(shù)據(jù)寫(xiě)入到MySQL數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pandas.DataFrame Series排序的使用(sort_values,sort_index)

    pandas.DataFrame Series排序的使用(sort_values,sort_index)

    本文主要介紹了pandas.DataFrame Series排序的使用(sort_values,sort_index),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 用Python制作mini翻譯器的實(shí)現(xiàn)示例

    用Python制作mini翻譯器的實(shí)現(xiàn)示例

    這篇文章主要介紹了用Python制作mini翻譯器的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python面向?qū)ο蟪绦蛟O(shè)計(jì)構(gòu)造函數(shù)和析構(gòu)函數(shù)用法分析

    Python面向?qū)ο蟪绦蛟O(shè)計(jì)構(gòu)造函數(shù)和析構(gòu)函數(shù)用法分析

    這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)構(gòu)造函數(shù)和析構(gòu)函數(shù)用法,結(jié)合具體實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中構(gòu)造函數(shù)與析構(gòu)函數(shù)的概念、原理、功能及相關(guān)使用技巧,需要的朋友可以參考下
    2019-04-04
  • Python集合基本概念與相關(guān)操作實(shí)例分析

    Python集合基本概念與相關(guān)操作實(shí)例分析

    這篇文章主要介紹了Python集合基本概念與相關(guān)操作,結(jié)合實(shí)例形式分析了Python集合的功能、原理、基本使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • Django使用unittest模塊進(jìn)行單元測(cè)試過(guò)程解析

    Django使用unittest模塊進(jìn)行單元測(cè)試過(guò)程解析

    這篇文章主要介紹了Django使用unittest模塊進(jìn)行單元測(cè)試過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python包裝和授權(quán)學(xué)習(xí)教程

    python包裝和授權(quán)學(xué)習(xí)教程

    包裝是指對(duì)一個(gè)已經(jīng)存在的對(duì)象進(jìn)行系定義加工,實(shí)現(xiàn)授權(quán)是包裝的一個(gè)特性,下面這篇文章主要給大家介紹了關(guān)于python包裝和授權(quán)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Python中XlsxWriter模塊簡(jiǎn)介與用法分析

    Python中XlsxWriter模塊簡(jiǎn)介與用法分析

    這篇文章主要介紹了Python中XlsxWriter模塊用法,簡(jiǎn)單描述了XlsxWriter模塊的功能并結(jié)合實(shí)例形式分析了Python使用XlsxWriter模塊操作xls文件的數(shù)據(jù)插入、直方圖等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • python多線程如何獲取有序結(jié)果

    python多線程如何獲取有序結(jié)果

    在Python中,多線程編程是一個(gè)常見(jiàn)需求,尤其是在處理I/O密集型任務(wù)時(shí),然而,多線程環(huán)境下保持任務(wù)執(zhí)行結(jié)果的順序通常較為復(fù)雜,為了解決這一問(wèn)題,可以通過(guò)封裝一個(gè)功能來(lái)確保即使在多線程環(huán)境下,任務(wù)的執(zhí)行結(jié)果也能按照一定的順序進(jìn)行收集和處理
    2024-09-09
  • 解決numpy矩陣相減出現(xiàn)的負(fù)值自動(dòng)轉(zhuǎn)正值的問(wèn)題

    解決numpy矩陣相減出現(xiàn)的負(fù)值自動(dòng)轉(zhuǎn)正值的問(wèn)題

    這篇文章主要介紹了解決numpy矩陣相減出現(xiàn)的負(fù)值自動(dòng)轉(zhuǎn)正值的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python中使用zip函數(shù)出現(xiàn)<zip object at 0x02A9E418>錯(cuò)誤的原因

    python中使用zip函數(shù)出現(xiàn)<zip object at 0x02A9E418>錯(cuò)誤的原因

    這篇文章主要介紹了python中使用zip函數(shù)出現(xiàn)<zip object at 0x02A9E418>錯(cuò)誤的原因分析及解決方法,需要的朋友可以參考下
    2018-09-09

最新評(píng)論