Pandas 读取与提取数据的三种常用方式

小石头
小石头
发布时间:2026-10-12 | 1人浏览过
原创

本文详解在 Python 数据分析中,如何使用 Pandas 库高效读取 CSV、TXT 文本文件、多 Sheet Excel 表格以及关系型数据库表。涵盖分隔符指定、列名自定义、数据库引擎配置等核心参数,提供可直接运行的代码示例,助您快速完成数据加载。

Pandas 数据加载基础

Pandas 作为 Python 核心数据分析库,内置了多种文件与数据库读取接口。使用前需确保已安装 pandas 及对应格式依赖(如处理 Excel 建议安装 openpyxl)。以下按数据类型分类说明标准操作流程。

Pandas 模块导入与基础数据结构预览
执行 import pandas as pd 后的基础环境确认

使用 read_csv 读取纯文本数据

read_csv 是 Pandas 最常用的文本解析函数,不仅支持标准 CSV,也适用于各类分隔符的 TXT 文件。

第1步:读取默认逗号分隔的 CSV 文件

当数据文件采用默认的逗号分隔且首行为表头时,直接传入文件路径即可自动识别行列。

myTest1.txt 原始文本数据截图
原始数据文件的字段分布示意

调用代码如下:

默认 read_csv 参数配置代码截图
完整的基础读取代码实现
import pandas as pd

# 读取默认逗号分隔且包含表头的文件
df = pd.read_csv('data/myTest1.txt')
print(df.head())

第2步:自定义分隔符与列名读取 TXT

非逗号分隔的 TXT 文件需手动指定 sep 参数。若文件无表头,可通过 header=None 配合 names 自定义列名。

myTest.txt 含特殊分隔符的原始数据
未带列名且使用制表符分隔的数据示例
# 指定制表符为分隔符,并重置列索引
df_custom = pd.read_csv(
    'data/myTest.txt',
    sep='\t',          # 根据实际文件修改:\t、-、/ 等
    header=None,       # 关闭自动读取第一行作为表头
    names=['ID', 'Name', 'Value'] # 替换为实际业务列名
)
print(df_custom.columns)
自定义分隔符读取的代码运行结果
正确解析后的 DataFrame 列名结构

使用 read_excel 读取电子表格

针对 .xlsx 或 .xls 文件,Pandas 提供 read_excel 方法。工作簿通常包含多个 sheet,可通过 sheet_name 参数精准定位目标表。

第1步:加载指定工作表的 Excel 数据

明确目标 Sheet 名称后传入 sheet_name 即可。若文件存在冗余引导行,可追加 skiprows 跳过干扰数据。

Excel 文件中包含多个 sheet 的标签页
目标数据位于名为 Sales_Data 的工作表中
# 读取指定名称的 Sheet,跳过前导空白行
df_excel = pd.read_excel(
    'reports/sales_report.xlsx',
    sheet_name='Sales_Data',
    skiprows=2
)
print(df_excel.shape)
Excel 多表选择读取的代码片段
成功提取指定工作表数据的内存对象

使用 read_sql 直连数据库获取数据

对于存储在 MySQL 或 PostgreSQL 中的数据,推荐使用 SQLAlchemy 构建数据库引擎,再通过 read_sql 将查询结果转为 DataFrame。

第1步:安装驱动并创建数据库连接

终端执行 pip install pymysql sqlalchemy 安装必要包。连接时需填写主机地址、端口、用户名、密码及数据库名。

使用 pymysql 建立数据库连接的代码
本地测试环境的 Connection 字符串配置
from sqlalchemy import create_engine

# 构建标准 URL:dialect+driver://user:password@host/dbname
engine = create_engine('mysql+pymysql://root:your_password@localhost:3306/test_db')
print("数据库引擎初始化完成")

第2步:编写 SQL 查询并载入 DataFrame

确认目标数据表结构后,拼接 SELECT 语句调用读取函数。若数据量极大,建议分批查询以避免内存溢出。

数据库客户端中展示的目标数据表字段
待读取的 users_info 表字段预览
# 定义查询语句
sql_query = "SELECT id, username, created_at FROM users_info WHERE status = 1"

# 执行查询并将结果直接映射为 Pandas 表格
df_db = pd.read_sql(sql_query, engine)
print(df_db.info())
read_sql 成功返回数据库记录的运行截图
查询成功返回的数据集结构校验

以上就是 Pandas 提取数据的三种常用方式的详细内容。在实际项目中,建议结合 chunksize 参数处理超大型数据集,并根据源文件格式灵活调整编码(encoding)与空值策略(na_values)。更多关于 Python 数据分析与数据预处理的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表