25、用pandas库进行数据的读取和写入【用Python进行AI数据分析进阶教程】
摘要:本文详细介绍了使用Python的pandas库进行数据读取和写入的方法。在数据读取方面,涵盖了从CSV文件、Excel文件及SQL数据库中读取数据的方式,包括指定文件路径、工作表名称、数据库连接信息等关键点。在数据写入方面,讲解了如何将数据写入CSV文件、Excel文件及SQL数据库,并强调了文件路径、工作表名称、表名唯一性及数据库连接信息的正确性。同时,文章提供了示例代码及重点语句解释,帮
用Python进行AI数据分析进阶教程25:
用pandas库进行数据的读取和写入
关键词:pandas库、数据读取、数据写入、CSV文件、Excel文件
摘要:本文详细介绍了使用Python的pandas库进行数据读取和写入的方法。在数据读取方面,涵盖了从CSV文件、Excel文件及SQL数据库中读取数据的方式,包括指定文件路径、工作表名称、数据库连接信息等关键点。在数据写入方面,讲解了如何将数据写入CSV文件、Excel文件及SQL数据库,并强调了文件路径、工作表名称、表名唯一性及数据库连接信息的正确性。同时,文章提供了示例代码及重点语句解释,帮助读者快速掌握pandas库的数据处理技巧。
👉 欢迎订阅🔗
《用Python进行AI数据分析进阶教程》专栏
《AI大模型应用实践进阶教程》专栏
《Python编程知识集锦》专栏
《字节跳动旗下AI制作抖音视频》专栏
《智能辅助驾驶》专栏
《工具软件及IT技术集锦》专栏
pandas 是 Python 中一个强大的数据处理库,提供了多种数据读取和写入的方式。以下将详细介绍常见的数据读取和写入方法,包括关键点和注意点,并给出示例代码及重点语句解释。
一、数据读取
1.1、读取 CSV 文件
- 方式:使用 pandas.read_csv() 函数。
- 关键点:可以指定文件路径、分隔符、编码等参数。
- 注意点:确保文件路径正确,注意文件编码,避免中文乱码问题。
Python脚本
# 导入 pandas 库,该库常用于数据处理和分析,重命名为 pd 方便后续调用
import pandas as pd
# 定义一个变量 file_path,用于存储要读取的 CSV 文件的路径
# 这里假设文件名为 data.csv,
# 你需要根据实际文件的存储位置和文件名进行修改
file_path = 'data.csv'
# 使用 pandas 的 read_csv 函数读取指定路径的 CSV 文件
# 该函数会将 CSV 文件中的数据读取出来,并将其转换为 DataFrame 对象
# DataFrame 是 pandas 中一种二维的表格型数据结构,
# 类似于 Excel 表格,方便对数据进行操作和分析
# 读取后的数据存储在变量 df 中
df = pd.read_csv(file_path)
# 重点语句解释
# pd.read_csv(file_path):从指定路径的 CSV 文件中读取数据,
# 并将其存储为 DataFrame 对象
# 使用 df.head() 方法查看 DataFrame 的前几行数据
# 默认情况下,head() 方法会返回前 5 行数据,
# 你可以传入一个整数参数来指定返回的行数,例如 df.head(3) 会返回前 3 行
# 这有助于我们快速了解数据的基本结构和内容
# 打印输出结果为 CSV 文件中数据的前几行,具体内容取决于 data.csv 文件中的数据
print(df.head())
1.2、读取 Excel 文件
- 方式:使用 pandas.read_excel() 函数。
- 关键点:可以指定工作表名称、读取的行数范围等参数。
- 注意点:需要安装 openpyxl 库(用于读取 .xlsx 文件)或 xlrd 库(用于读取 .xls 文件)。
Python脚本
# 导入 pandas 库,pandas 是一个强大的数据分析工具,将其重命名为 pd 方便后续使用
import pandas as pd
# 定义一个字符串变量 file_path,用于指定要读取的 Excel 文件的路径
# 这里假设 Excel 文件名为 data.xlsx,实际使用时需根据文件真实名称和位置修改
file_path = 'data.xlsx'
# 使用 pandas 的 read_excel 函数读取指定路径的 Excel 文件
# 参数 file_path 表示文件的路径
# 参数 sheet_name='Sheet1' 表示要读取的工作表名称为 'Sheet1',
# 若 Excel 文件中有多个工作表,可通过此参数指定要读取的工作表
# 函数将读取的数据存储为一个 DataFrame 对象,存储在变量 df 中
# DataFrame 是 pandas 中用于处理二维表格数据的主要数据结构,类似于 Excel 表格
df = pd.read_excel(file_path, sheet_name='Sheet1')
# 重点语句解释
# pd.read_excel(file_path, sheet_name='Sheet1'):从指定路径的 Excel 文件中
# 读取名为 'Sheet1' 的工作表数据,并存储为 DataFrame 对象
# 使用 df.head() 方法查看 DataFrame 的前几行数据
# 默认情况下,head() 方法返回 DataFrame 的前 5 行,也可以传入一个整数参数指定返回的行数,如 df.head(3) 会返回前 3 行
# 打印这些数据可以帮助我们快速了解数据的大致结构和内容
# 打印输出结果是 Excel 文件中 'Sheet1' 工作表数据的前几行,
# 具体内容取决于 data.xlsx 文件中 'Sheet1' 工作表的数据
print(df.head())
1.3、读取 SQL 数据库
- 方式:使用 pandas.read_sql() 函数。
- 关键点:需要安装相应的数据库驱动,如 pymysql 用于 MySQL 数据库,psycopg2 用于 PostgreSQL 数据库。
- 注意点:确保数据库连接信息正确,注意 SQL 查询语句的正确性。
Python脚本
# 导入 pandas 库,用于数据处理和分析,
# 在后续会将从数据库查询到的数据存储为 DataFrame 格式
import pandas as pd
# 导入 pymysql 库,它是 Python 连接 MySQL 数据库的驱动程序
import pymysql
# 从 sqlalchemy 库中导入 create_engine 函数,用于创建数据库连接引擎
from sqlalchemy import create_engine
# 创建数据库连接
# 使用 create_engine 函数创建一个数据库连接引擎
# 'mysql+pymysql://username:password@host:port/database_name' 是数据库连接的 URI
# 'mysql+pymysql' 表示使用 pymysql 作为 MySQL 数据库的驱动程序
# 'username' 需要替换为实际的数据库用户名
# 'password' 需要替换为实际的数据库用户密码
# 'host' 需要替换为实际的数据库服务器地址
# 'port' 需要替换为实际的数据库服务端口号
# 'database_name' 需要替换为实际要连接的数据库名称
# 引擎对象 engine 用于后续与数据库建立连接并执行 SQL 操作
engine = create_engine('mysql+pymysql://username:password@host:port/database_name')
# 执行 SQL 查询并读取数据
# 定义一个字符串变量 query,用于存储要执行的 SQL 查询语句
# 'SELECT * FROM table_name' 表示从名为 'table_name' 的表中查询所有列的数据
# 'table_name' 需要替换为实际要查询的数据库表名
query = 'SELECT * FROM table_name'
# 使用 pandas 的 read_sql 函数执行 SQL 查询
# 第一个参数 query 是要执行的 SQL 查询语句
# 第二个参数 engine 是之前创建的数据库连接引擎
# 函数会将查询结果存储为一个 DataFrame 对象,并赋值给变量 df
# DataFrame 是 pandas 中用于处理二维表格数据的主要数据结构,类似于 Excel 表格
df = pd.read_sql(query, engine)
# 重点语句解释
# create_engine('mysql+pymysql://username:password@host:port/database_name'):
# 创建一个数据库连接引擎
# pd.read_sql(query, engine):执行指定的 SQL 查询语句,并将查询结果存储为 DataFrame 对象
# 使用 df.head() 方法查看 DataFrame 的前几行数据
# 默认情况下,head() 方法返回 DataFrame 的前 5 行,
# 也可以传入一个整数参数指定返回的行数,如 df.head(3) 会返回前 3 行
# 打印这些数据可以帮助我们快速了解从数据库查询到的数据的大致结构和内容
# 打印输出结果是执行 SQL 查询后从数据库中获取的数据的前几行,
# 具体内容取决于 'table_name' 表中的数据
print(df.head())
二、数据写入
2.1、写入 CSV 文件
- 方式:使用 DataFrame.to_csv() 方法。
- 关键点:可以指定文件路径、分隔符、编码等参数。
- 注意点:确保有写入文件的权限,注意文件编码,避免中文乱码问题。
Python脚本
# 导入 pandas 库,它是一个用于数据处理和分析的强大工具,
# 将其重命名为 pd 以便后续使用
import pandas as pd
# 创建示例 DataFrame
# 定义一个字典 data,其中包含两个键值对
# 键 'Name' 对应的值是一个包含三个字符串的列表,代表姓名
# 键 'Age' 对应的值是一个包含三个整数的列表,代表年龄
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
# 使用 pd.DataFrame() 函数将字典 data 转换为一个 DataFrame 对象 df
# DataFrame 是 pandas 中用于表示二维表格数据的主要数据结构,类似于 Excel 表格
df = pd.DataFrame(data)
# 写入 CSV 文件
# 定义一个字符串变量 file_path,用于指定要将数据写入的 CSV 文件的路径
# 这里指定文件名为 output.csv,文件将保存在代码运行的当前工作目录下
file_path = 'output.csv'
# 使用 df.to_csv() 方法将 DataFrame 对象 df 中的数据写入到指定路径的 CSV 文件中
# 第一个参数 file_path 是目标 CSV 文件的路径
# index=False 是一个可选参数,设置为 False 表示在写入 CSV 文件时
# 不保存 DataFrame 的行索引
# 如果不设置该参数或设置为 True,CSV 文件中会额外包含一列行索引数据
df.to_csv(file_path, index=False)
# 重点语句解释
# df.to_csv(file_path, index=False):将 DataFrame 对象的数据写入
# 指定路径的 CSV 文件,index=False 表示不保存行索引
运行这段代码后,会在当前工作目录下生成一个名为 output.csv 的文件,文件内容包含 Name 和 Age 两列数据,没有行索引列。如果要将文件保存到其他目录,需要修改 file_path 为完整的文件路径。
2.2、写入 Excel 文件
- 方式:使用 DataFrame.to_excel() 方法。
- 关键点:可以指定工作表名称、写入的起始位置等参数。
- 注意点:需要安装 openpyxl 库。
Python脚本
# 导入 pandas 库,该库在数据处理和分析领域非常实用,这里将其重命名为 pd 方便后续使用
import pandas as pd
# 创建示例 DataFrame
# 定义一个字典 data,它包含两列数据的信息
# 'Name' 列对应的值是一个包含三个字符串的列表,代表不同人的姓名
# 'Age' 列对应的值是一个包含三个整数的列表,代表对应人的年龄
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
# 使用 pandas 的 DataFrame 构造函数将字典 data 转换为 DataFrame 对象 df
# DataFrame 是一种二维的表格型数据结构,类似于 Excel 表格,有行和列的概念
df = pd.DataFrame(data)
# 写入 Excel 文件
# 定义一个字符串变量 file_path,指定要保存的 Excel 文件的路径和文件名
# 这里表示要将数据保存到当前工作目录下名为 output.xlsx 的文件中
file_path = 'output.xlsx'
# 使用 DataFrame 对象的 to_excel 方法将 df 中的数据写入到指定的 Excel 文件中
# 第一个参数 file_path 是目标 Excel 文件的路径
# sheet_name='Sheet1' 表示要将数据写入到 Excel 文件中名为 'Sheet1' 的工作表里
# index=False 是一个可选参数,设置为 False 意味着在写入 Excel 文件时不保存 DataFrame 的行索引
# 若不设置此参数或设置为 True,Excel 文件中会额外有一列用于显示行索引
df.to_excel(file_path, sheet_name='Sheet1', index=False)
# 重点语句解释
# df.to_excel(file_path, sheet_name='Sheet1', index=False):
#将 DataFrame 对象的数据写入指定路径的 Excel 文件
#的 'Sheet1' 工作表,index=False 表示不保存行索引
# 由于代码中没有打印操作,所以不会有打印输出结果。
# 不过运行代码后,会在指定路径(这里是当前工作目录)
# 生成一个名为 output.xlsx 的 Excel 文件,
# 该文件的 'Sheet1' 工作表中有两列数据,分别是 'Name' 和 'Age',且没有行索引列。
2.3、写入 SQL 数据库
- 方式:使用 DataFrame.to_sql() 方法。
- 关键点:需要安装相应的数据库驱动,如 pymysql 用于 MySQL 数据库,psycopg2 用于 PostgreSQL 数据库。
- 注意点:确保数据库连接信息正确,注意表名的唯一性。
Python脚本
# 导入 pandas 库,它是一个强大的数据处理和分析工具,后续用于创建和处理 DataFrame 对象
import pandas as pd
# 导入 pymysql 库,它是 Python 连接 MySQL 数据库的驱动程序,为数据库操作提供支持
import pymysql
# 从 sqlalchemy 库中导入 create_engine 函数,用于创建数据库连接引擎
from sqlalchemy import create_engine
# 创建示例 DataFrame
# 定义一个字典 data,包含两列数据信息
# 'Name' 列对应的值是一个包含三个字符串的列表,代表不同人的姓名
# 'Age' 列对应的值是一个包含三个整数的列表,代表对应人的年龄
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
# 使用 pandas 的 DataFrame 构造函数将字典 data 转换为 DataFrame 对象 df
# DataFrame 是一种二维的表格型数据结构,类似于 Excel 表格,方便对数据进行操作和分析
df = pd.DataFrame(data)
# 创建数据库连接
# 使用 create_engine 函数创建一个数据库连接引擎
# 'mysql+pymysql://username:password@host:port/database_name' 是数据库连接的 URI
# 'mysql+pymysql' 表示使用 pymysql 作为 MySQL 数据库的驱动程序
# 'username' 需要替换为实际的数据库用户名
# 'password' 需要替换为实际的数据库用户密码
# 'host' 需要替换为实际的数据库服务器地址
# 'port' 需要替换为实际的数据库服务端口号
# 'database_name' 需要替换为实际要连接的数据库名称
# 引擎对象 engine 用于后续与数据库建立连接并执行数据写入操作
engine = create_engine('mysql+pymysql://username:password@host:port/database_name')
# 写入 SQL 数据库
# 定义一个字符串变量 table_name,指定要将数据写入的数据库表名
table_name = 'new_table'
# 使用 DataFrame 对象的 to_sql 方法将 df 中的数据写入到指定数据库的表中
# 第一个参数 table_name 是目标数据库表的名称
# 第二个参数 engine 是之前创建的数据库连接引擎
# index=False 是一个可选参数,设置为 False 表示在写入数据库表时不保存 DataFrame 的行索引
# if_exists='replace' 也是一个可选参数,它表示如果指定名称的表已经存在于数据库中,
# 则将其替换为新的数据
df.to_sql(table_name, engine, index=False, if_exists='replace')
# 重点语句解释
# df.to_sql(table_name, engine, index=False, if_exists='replace'):将 DataFrame 对象的数据# 写入指定数据库的新表中,index=False 表示不保存行索引,
# if_exists='replace' 表示如果表已存在则替换
# 由于代码中没有打印操作,所以不会有打印输出结果。
# 不过运行代码后,在指定的数据库中会创建或替换名为 'new_table' 的表,
# 表中包含两列数据,分别是 'Name' 和 'Age',且没有行索引对应的列。
在运行此代码前,需要确保已经安装了 pandas、pymysql 和 sqlalchemy 库,同时要将 username、password、host、port 和 database_name 替换为实际的数据库连接信息。另外,确保运行代码的用户对指定的数据库有创建和修改表的权限。
通过以上介绍,你可以掌握 pandas 库中常见的数据读取和写入方式,以及相关的关键点和注意点。
——The END——
🔗 欢迎订阅专栏
序号 | 专栏名称 | 说明 |
---|---|---|
1 | 用Python进行AI数据分析进阶教程 | 《用Python进行AI数据分析进阶教程》专栏 |
2 | AI大模型应用实践进阶教程 | 《AI大模型应用实践进阶教程》专栏 |
3 | Python编程知识集锦 | 《Python编程知识集锦》专栏 |
4 | 字节跳动旗下AI制作抖音视频 | 《字节跳动旗下AI制作抖音视频》专栏 |
5 | 智能辅助驾驶 | 《智能辅助驾驶》专栏 |
6 | 工具软件及IT技术集锦 | 《工具软件及IT技术集锦》专栏 |
👉 关注我 @理工男大辉郎 获取实时更新
欢迎关注、收藏或转发。
敬请关注 我的
微信搜索公众号:cnFuJH
CSDN博客:理工男大辉郎
抖音号:31580422589
更多推荐
所有评论(0)