pandas 操作mysql詳解

2022-07-12 17:42:23 字數 2507 閱讀 7663

要實現 pandas 對 mysql 的讀寫需要三個庫

可能有的同學會問,單獨用 pymysql 或 sqlalchemy 來讀寫資料庫不香麼,為什麼要同時用三個庫?主要是使用場景不同,個人覺得就大資料處理而言,用 pandas 讀寫資料庫更加便捷。 

1、read_sql_query 讀取 mysql

read_sql_query 或 read_sql 方法傳入引數均為 sql 語句,讀取資料庫後,返回內容是 dateframe 物件。普及一下:dateframe 其實也是一種資料結構,類似 excel **一樣。

import

pandas

from sqlalchemy import

create_engine

class

mysqlconn:

def__init__

(self):

mysql_username = '

root

'mysql_password = '

123456'#

填寫真實數庫ip

mysql_ip = '

x.x.x.x

'port = 3306db = '

work'#

初始化資料庫連線,使用pymysql庫

self.engine = create_engine('

mysql+pymysql://{}:{}@{}:{}/{}

'.format(mysql_username, mysql_password, mysql_ip, port,db))

#查詢mysql資料庫

defquery(self,sql):

df =pandas.read_sql_query(sql,self.engine)

#df = pandas.read_sql(sql,self.engine) 這種讀取方式也可以

#返回dateframe格式

return

dfif

__name__ =='

__main__':

#查詢的 sql 語句

sql = '''

select * from working_time order by id desc

'''#

呼叫 mysqlconn 類的 query() 方法

df_data = mysqlconn().query(sql=sql)

2、to_sql 寫入資料庫

使用 to_sql 方法寫入資料庫之前,先把資料轉化成 dateframe 。 

import

pandas

from sqlalchemy import

create_engine

class

mysqlconn:

def__init__

(self):

mysql_username = '

root

'mysql_password = '

123456'#

填寫真實數庫ip

mysql_ip = '

mysql.mall.svc.test.local

'port = 3306db = '

work'#

初始化資料庫連線,使用pymysql庫

self.engine = create_engine('

mysql+pymysql://{}:{}@{}:{}/{}

'.format(mysql_username, mysql_password, mysql_ip, port,db))

#查詢mysql資料庫

defquery(self,sql):

df =pandas.read_sql_query(sql,self.engine)

#df = pandas.read_sql(sql,self.engine)

#返回dateframe格式

return

df

#寫入mysql資料庫

defto_sql(self,table,df):

#第乙個引數是表名##

1.fail:如果表存在,啥也不做

#2.replace:如果表存在,刪了表,再建立乙個新錶,把資料插入##

index 是否儲存index列

df.to_sql(table, con=self.engine, if_exists='

', index=false)

if__name__ =='

__main__':

#建立 dateframe 物件

df = pandas.dataframe([,])

#呼叫 mysqlconn 類的 to_sql() 方法

mysqlconn().to_sql('

phonetest

',df)

插入資料庫的資料:

MySQL 操作詳解

建立並選擇資料庫 mysql show databases mysql create database test mysql use test建立表 mysql create table pet name varchar 20 owner varchar 20 species varchar 20 ...

Pandas操作mysql資料庫

公司中有時候我們的需求是操作mysql資料庫中的資料,如果我們能用pandas直接操作mysql的話,就比較方便了 pandas讀取mysql資料庫 python 純文字檢視 複製 0102 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 匯入必要模組...

使用pandas操作MySQL資料庫

sqlalchemy是python程式語言下的一款開源軟體。提供了sql工具包及物件關係對映 orm 工具,使用mit許可證發行 sqlalchemy模組提供了create engine 函式用來初始化資料庫連線,sqlalchemy用乙個字串表示連線資訊 我們需要以下三個庫來實現pandas讀寫m...