大数跨境
0
0

Python连接数据库并做数据清洗

Python连接数据库并做数据清洗 大话数据分析
2025-06-24
0
导读:Python接入PostgreSQL数据库,一招搞定!

在数据分析、自动化办公、后台开发等场景中,我们经常需要从数据库中提取数据,而 PostgreSQL 是被广泛使用的开源数据库之一。那么,Python 如何高效连接 PostgreSQL并进行数据交互?下面本文带你一步一步操作。

以Navicat Premium客户端为例,我们先看看使用Navicat Premium连接数据库都需要哪些信息凭证,点击新建连接,选择PostgreSQL数据库,点击下一步。

在Navicat Premium连接信息需要以下内容,包含主机地址、端口号、数据库名、用户名和密码,这些信息在使用Python连接时同样需要。

  • 主机地址(host): IP地址

  • 端口号(port): PostgreSQL 默认是 5432

  • 数据库名(database): 如 my_database

  • 用户名(user): 如 admin

  • 密码(password): 如 your_password

接下来尝试使用Python来连接数据库,首先查看一下自己的Python版本,如果Python版本较低的话,建议升级一下Python版本。

import sysprint(sys.version)

接着下载SQLAlchemy库,SQLAlchemy 是一个功能强大的 Python 数据库工具,它提供了统一的数据库操作接口,既支持原生SQL,又支持对象关系映射,让数据库操作更灵活、高效、可维护。

!pip install SQLAlchemy -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

下载PostgreSQL 驱动。

!pip install psycopg2-binary -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

下载好SQLAlchemy以及PostgreSQL 驱动后,就可以使用 SQLAlchemy 创建连接,输入下面的Python代码就可以完成数据库连接。

from sqlalchemy import create_engineimport pandas as pdfrom urllib.parse import quote_plus  # 用于对特殊字符的密码进行编码 # 配置信息host = '127.0.0.1'port = '5432'database = 'my_database'username = 'admin'password = 'your_password'  # 如果有特殊字符需要使用 quote_plus 编码 # 构建连接字符串encoded_password = quote_plus(password)conn_str = f"postgresql+psycopg2://{username}:{encoded_password}@{host}:{port}/{database}" # 创建引擎engine = create_engine(conn_str) # 测试读取一张表df = pd.read_sql_query("SELECT * FROM your_table LIMIT 10;", engine)print(df.head())

如果你想在读取数据之前对于数据先做一次过滤,可以用pandas.read_sql_query()直接读取SQL查询结果为DataFrame,比如,这里可以写SQL语句进行数据过滤,下面的SQL语句可以查询近七日创建的数据,相当于在给DataFrame赋值前就做了过滤。

sql = """SELECT order_id, amount, created_atFROM ordersWHERE created_at >= current_date - INTERVAL '7 days'"""
df = pd.read_sql_query(sql, engine)print(df)

上面的SQL查询语法与在数据库中的SQL语法是等同的。

如果你长期使用 SQLAlchemy 的 engine,不需要手动关闭连接。但如果你使用的是 psycopg2 原始驱动,记得要关闭,这样可以释放部分资源,减少服务器压力。

engine.dispose() # 可用于主动释放连接

上面通过Python将数据库中的数据导入为一个DataFrame,接下来就可以使用Pandas进行数据清洗和数据分析步骤,而且还可以使用一些Python包做数据可视化,对比SQL直接进行数据清洗,Python还可以进行数据呈现。

比如,下面的房价预测数据就是基于数据库中的数据,使用Python进行数据清洗,并结合机器学习模型做房价预测及数据可视化,从数据清洗阶段,到数据建模,到数据可视化,Python一个工具就能搞定。

以上,借助一个小案例,通过SQLAlchemy和Pandas,Python连接PostgreSQL可以非常灵活与高效,适用于数据分析、报表生成、自动化工具等场景,只需几步就能完成数据读取,轻松将数据库中的业务数据转为你熟悉的Excel表格。

后台回复数据分析入门,获取数据分析入门资料
加入数据分析资料群,一起交流数据分析知识

关注和星标『大话数据分析』

和作者一起学习数据分析!

👆点击关注|设为星标|干货速递👆

前蚂蚁金服数据运营,现京东经营分析,公众号、知乎、头条「大话数据分析」主理人,专注于数据分析的实践与分享,掌握Python、SQL、PowerBI、Excel等数据分析工具,擅长运用技术解决企业实际问题。

【声明】内容源于网络
0
0
大话数据分析
数据分析的收集者、整理者、分享者、实践者
内容 408
粉丝 0
大话数据分析 数据分析的收集者、整理者、分享者、实践者
总阅读543
粉丝0
内容408