Python連線資料庫將結果轉換為DataFrame(列名和表欄位一致)
很多時候,我們用Python處理資料,需要連線到Mysql、Postgresql等資料庫,獲取表資料,再構建pandas的DataFrame進行進一步處理。但是查詢資料庫結果集是沒有表欄位名稱的,我們希望構建的DataFrame的列名和表欄位一樣。
直接上程式碼
這裡以Postgresql資料庫為例,Mysql資料庫差不多,其他的自行改造。
先封裝一個查詢類,查詢返回的結果是一個字典,head
是表列名,data
是表資料,再用DataFrame構造資料結構。
import psycopg2
import pandas as pd
class db_pg:
def __init__(self, host, db, user, pwd, port):
self.host = host
self.db = db
self.user = user
self.pwd = pwd
self.port = port
self._conn = self._connect()
self._cursor = self._conn.cursor()
def _connect(self):
return psycopg2.connect(
database=self.db,
user=self.user,
password=self.pwd,
host=self.host,
port=self.port)
def select(self, sqlCode):
self.common(sqlCode)
col_names = []
result = {}
column_count = len(self._cursor.description)
for i in range(column_count):
desc = self._cursor.description[i]
col_names.append(desc[0])
data = self._cursor.fetchall()
result['head'] = col_names
result['data'] = data
return result
def close(self):
self._cursor.close()
self._conn.close()
def common(self, sqlCode):
try:
self._cursor.execute(sqlCode)
except Exception as e:
print(e)
self._conn.rollback()
self._cursor.execute(sqlCode)
self._conn.commit()
def __del__(self):
self.close()
db_conn = {
'host': "******",
'db' : "******",
'user': "******",
'pwd' :"******",
'port': "******"
}
pg_conn = db_pg(host=db_conn['host'],db=db_conn['db'],user=db_conn['user'],pwd=db_conn['pwd'],port=db_conn['port'])
rs = pg_conn.select("select * from test")
rs_df = pd.DataFrame(list(rs.get('data')),columns=rs.get('head'))
執行示例
更多
相關文章
- 將表結構轉換成實體欄位
- 將json資料轉換為Python字典將json資料轉換為Python字典JSONPython
- Golang 將資料庫轉換為gorm結構和RESTful apiGolang資料庫ORMRESTAPI
- 織夢資料庫表結構_Dedecms資料庫表和欄位詳細介紹資料庫
- python--進位制轉換和資料交換Python
- 查詢資料庫表及表欄位資料庫
- python遠端連線mysql以及pandas.DataFrame.to_sql寫入資料庫PythonMySql資料庫
- 資料庫表欄位命名規範資料庫
- openGauss資料庫將磁碟錶轉換為MOT資料庫
- 快速將下劃線欄位改為駝峰欄位
- 資料庫下表和列名顯示資料庫
- Oracle資料庫連結(DBLink)中如何訪問包含BLOB欄位的資料Oracle資料庫
- Hash連結串列轉換為紅黑樹,和樹轉換為連結串列的條件
- mysql資料庫新增和修改欄位MySql資料庫
- Python連線SQLite資料庫PythonSQLite資料庫
- python資料庫連線池Python資料庫
- 使用Python連線資料庫Python資料庫
- Python連線MySQL資料庫PythonMySql資料庫
- Python 連線 Oracle資料庫PythonOracle資料庫
- mybatis查詢mysql 資料庫中 BLOB欄位,結果出現亂碼MyBatisMySql資料庫
- go語言將表資料動態轉成切片(欄位任意擴充)Go
- 如何在Oracle資料庫中查詢表和欄位說明Oracle資料庫
- python 連線 mongo 資料庫連線超時PythonGo資料庫
- 如何將 performance_schema 中的 TIMER 欄位轉換為日期時間ORM
- hive將查詢資料插入表中某欄位無資料Hive
- 資料結構–進位制(任意)轉換資料結構
- python資料插入連線MySQL資料庫PythonMySql資料庫
- 為什麼資料庫欄位要使用NOT NULL?資料庫Null
- SparkSQL,如何將DataFrame轉為json格式SparkSQLJSON
- 資料庫與python的連線資料庫Python
- python怎麼連線資料庫Python資料庫
- Python資料庫連線池DButilsPython資料庫
- Polars:用於 Rust 和 Python的快速資料整理DataFrame庫RustPython
- 資料結構-線性表、連結串列資料結構
- SQL Server中獲取資料庫名、表名、欄位名和欄位註釋的SQL語句SQLServer資料庫
- python連線clickhouse資料庫的兩種方式小結Python資料庫
- java 將物件集合轉為欄位值的 listJava物件
- python獲取、修改mysql資料庫欄位屬性PythonMySql資料庫