Pandas 中文手册

6.7 数据读取实战案例

Pandas数据读取实战案例:CSV、Excel与数据库

Pandas 中文手册

本章节介绍Pandas中读取CSV、Excel文件和数据库的实战案例,包括基础配置与数据查看、大数据分批处理和数据库连接,适合数据科学初学者快速上手。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

Pandas数据读取实战案例

在本章节中,我们将通过三个实战案例,学习如何使用Pandas高效读取和处理不同数据源。Pandas是Python中强大的数据处理库,掌握数据读取是数据分析的第一步。

案例1:读取CSV/Excel文件,完成基础配置与数据查看

读取CSV文件

CSV(Comma-Separated Values)是常见的数据格式,Pandas的read_csv()函数可以轻松读取。以下是基本操作:

import pandas as pd

# 读取CSV文件,指定文件路径
# 基础配置示例:设置编码为utf-8,分隔符为逗号
# encoding参数防止乱码,sep参数定义分隔符,默认是逗号
# header参数指定表头行,默认为0(第一行)
df_csv = pd.read_csv('data.csv', encoding='utf-8', sep=',', header=0)

# 数据查看:了解数据结构和内容
# head()查看前5行,tail()查看后5行
print(df_csv.head())  # 查看前几行
print(df_csv.tail())  # 查看后几行

# info()查看数据基本信息,包括列名、类型和非空值数量
print(df_csv.info())

# describe()生成统计摘要,如均值、标准差等
print(df_csv.describe())

小贴士:如果CSV文件较大,可以先用nrows参数读取前几行预览,例如pd.read_csv('data.csv', nrows=100)

读取Excel文件

Excel文件也很常见,使用read_excel()函数:

# 读取Excel文件,可以指定工作表
# sheet_name参数可以是工作表名称或索引,默认为0
# 其他配置参数类似CSV,如header、index_col
df_excel = pd.read_excel('data.xlsx', sheet_name='Sheet1', header=0)

# 数据查看
print(df_excel.head())
print(df_excel.info())

总结:案例1帮助您快速入门,读取本地文件并初步探索数据,确保无错误配置,如编码匹配。

案例2:大数据量CSV文件分批读取与处理

处理大型CSV文件时,直接读取可能耗尽内存。Pandas提供了chunksize参数,允许分批读取。

# 分批读取CSV文件,每批10000行
chunksize = 10000  # 定义每批行数,根据内存调整
chunk_list = []    # 存储处理后的chunks

# 使用read_csv的chunksize参数迭代读取
for chunk in pd.read_csv('large_data.csv', chunksize=chunksize, encoding='utf-8'):
    # 对每个chunk进行处理,例如过滤数据
    # 假设有一列'age',我们筛选年龄大于30的数据
    filtered_chunk = chunk[chunk['age'] > 30]
    
    # 可选:进行简单统计或转换
    chunk['new_column'] = chunk['value'] * 2  # 添加新列
    
    # 将处理后的chunk添加到列表
    chunk_list.append(filtered_chunk)

# 合并所有chunks成一个完整的DataFrame
final_df = pd.concat(chunk_list, ignore_index=True)

print(f"处理后的数据形状:{final_df.shape}")
print(final_df.head())

优势:分批处理减少内存占用,适用于数据清洗、聚合等操作。

案例3:读取数据库表数据,转换为DataFrame

从数据库读取数据是数据分析的常见需求。Pandas支持通过SQLAlchemy连接多种数据库。

准备环境

首先,安装必要库:pip install pandas sqlalchemy pymysql(以MySQL为例)。

读取数据库数据

import pandas as pd
from sqlalchemy import create_engine

# 创建数据库连接
# 以MySQL为例,格式为:dialect+driver://username:password@host/database
# 替换为您的数据库信息
database_url = 'mysql+pymysql://user:password@localhost/my_database'
engine = create_engine(database_url)

# 执行SQL查询,将结果读取为DataFrame
# 可以读取整个表,或使用复杂查询
query = "SELECT * FROM employees"  # 示例:读取employees表
df_db = pd.read_sql(query, con=engine)

# 数据查看
print(df_db.head())
print(df_db.info())

# 关闭连接(可选,通常引擎会管理)
engine.dispose()

扩展

  • 对于其他数据库(如PostgreSQL、SQLite),只需调整连接字符串。
  • 使用read_sql_table()函数可以直接读取表,无需写SQL。

总结

通过本章节的三个案例,您应该能够:

  1. 使用read_csv()read_excel()读取本地文件,并进行基础数据探索。
  2. chunksize参数处理大数据CSV,避免内存问题。
  3. 连接数据库,将表数据转换为DataFrame,支持SQL查询。

多加练习,结合实际项目,提升数据读取和处理技能。Pandas是数据科学的重要工具,熟练掌握这些基础操作将为后续分析奠定基础。

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包