Pandas 统计分析基础 之 读写不同数据源的数据①

发布于:2025-02-27 ⋅ 阅读:(12) ⋅ 点赞:(0)

Python读写不同数据源的数据

在数据处理和分析中,常常需要从不同的数据源读取数据以及将数据写入不同的文件或数据库。本文将通过多个案例展示如何使用Python的pandas库以及相关工具来读写不同数据源的数据。

代码3-1:使用read_tableread_csv函数读取CSV文件

在这里插入图片描述
在这里插入图片描述

# 代码3-1
import pandas as pd
# 使用read_table函数读取音乐行业收入信息表
musicdata = pd.read_table('../data/musicdata.csv', sep=',', encoding='gbk')
print('使用read_table函数读取音乐行业收入信息表的长度为:', len(musicdata))

# 使用read_csv函数读取音乐行业收入信息表
musicdata1 = pd.read_csv('../data/musicdata.csv', encoding='gbk')
print('使用read_csv函数读取音乐行业收入信息表的长度为:', len(musicdata1))

代码解析

  • pd.read_table:该函数用于读取表格数据,这里指定分隔符为逗号(sep=','),编码为gbk,读取../data/musicdata.csv文件。
  • pd.read_csv:专门用于读取CSV文件,指定编码为gbk读取相同文件。最后分别打印读取后数据的长度。

代码3-2:不同参数读取CSV文件

在这里插入图片描述

# 代码3-2
# 使用read_table函数读取音乐行业收入表,sep=';'
musicdata2 = pd.read_table('../data/musicdata.csv', sep = ';', encoding='gbk')
print('当分隔符为;时,音乐行业收入信息表为:\n', musicdata2)

# 使用read_csv函数读取音乐行业收入信息表,header=None
musicdata3 = pd.read_csv('../data/musicdata.csv', sep=',', header=None, encoding='gbk')
print('当header为None时,音乐行业收入数据信息表为:\n', musicdata3)

# 使用UTF-16编码读取音乐行业收入信息表
musicdata4 = pd.read_csv('../data/musicdata.csv', sep=',', encoding='utf-16')
print('encoding为"utf-16"时音乐行业收入数据信息表为:\n', musicdata4)

代码解析

  • 第一个read_table读取时指定分隔符为分号(sep=';'),查看不同分隔符下的数据读取情况。
  • read_csv中设置header=None,表示读取时不将第一行作为列名。
  • 最后一个read_csv指定编码为utf-16,展示不同编码下的数据读取。

代码3-3:将数据写入CSV文件

在这里插入图片描述

# 代码3-3
import os
print('音乐行业收入信息表写入文本文件前目录内文件列表为:\n', os.listdir('../tmp')) 
# 将musicdata以csv格式存储
musicdata.to_csv('../tmp/musicdataInfo.csv', sep=';', index=False) 
print('音乐行业收入信息表写入文本文件后目录内文件列表为:\n', os.listdir('../tmp'))

代码解析

  • 首先使用os.listdir查看../tmp目录下的文件列表。
  • 然后使用to_csv方法将musicdata数据以CSV格式存储到../tmp/musicdataInfo.csv文件中,指定分隔符为分号,并且不保存索引(index=False)。
  • 最后再次使用os.listdir查看写入文件后的目录文件列表。

代码3-4:读取Excel文件

在这里插入图片描述

# 代码3-4
# 读取musicdata.xlsx文件
musicdata = pd.read_excel('../data/musicdata.xlsx')
print('音乐行业收入信息表长度为:', len(musicdata))

代码解析

  • 使用pd.read_excel函数读取../data/musicdata.xlsx文件,并打印读取后数据的长度。

代码3-5:将数据写入Excel文件

在这里插入图片描述

# 代码3-5
print('音乐行业收入信息表写入Excel文件前,目录内文件列表为:\n', os.listdir('../tmp')) 
musicdata.to_excel('../tmp/musicdata.xlsx')
print('音乐行业收入信息表写入Excel文件后,目录内文件列表为:\n', os.listdir('../tmp'))

代码解析

  • 同样先使用os.listdir查看../tmp目录下的文件列表。
  • 然后使用to_excel方法将musicdata数据写入到../tmp/musicdata.xlsx文件中。
  • 最后再次使用os.listdir查看写入文件后的目录文件列表。

代码3-6:创建MySQL连接器

在这里插入图片描述

# 代码3-6
from sqlalchemy import create_engine
# 创建一个MySQL连接器,用户名为root,密码为1234
# 地址为127.0.0.1,数据库名称为testdb,编码为UTF-8
engine = create_engine('mysql+pymysql://root:1234@127.0.0.1:3306/testdb?charset=utf8')
print(engine)

代码解析

  • 使用sqlalchemy库的create_engine函数创建一个MySQL数据库连接器,指定用户名、密码、数据库地址、数据库名称以及编码。

代码3-7:从MySQL数据库读取数据

在这里插入图片描述

# 代码3-7
# 使用read_sql_query函数查看testdb中的数据表数目
musicadatalist = pd.read_sql_query('show tables', con=engine)
print('testdb数据库数据表清单为:\n', musicadatalist)

# 使用read_sql_table函数读取音乐行业收入信息表
musicdata = pd.read_sql_table('musicdata', con=engine)
print('使用read_sql_table函数读取音乐行业收入信息表的长度为:\n', len(musicdata))

# 使用read_sql函数读取音乐行业收入信息表
musicdata = pd.read_sql('musicdata', con=engine)
print('使用read_sql函数读取音乐行业收入信息表的长度为:\n', len(musicdata))

代码解析

  • pd.read_sql_query:执行SQL查询语句show tables,查看数据库中的数据表清单。
  • pd.read_sql_table:直接读取指定名称的表(musicdata)。
  • pd.read_sql:也可以用于读取指定名称的表,这里同样读取musicdata表,并打印读取后数据的长度。

代码3-8:将数据存储到MySQL数据库

# 代码3-8
# 使用to_sql()方法存储musicData
musicdata.to_sql('test1', con=engine, index=False, if_exists='replace')    
# 使用read_sql函数读取test表
formlist1 = pd.read_sql_query('show tables', con=engine)
print('新增一个表格后,testdb数据库数据表清单为:\n', formlist1)

代码解析

  • 使用to_sql方法将musicdata数据存储到MySQL数据库的test1表中,不保存索引,并且如果表已存在则替换(if_exists='replace')。
  • 最后使用read_sql_query查看新增表格后的数据库数据表清单。

总结

通过以上案例,你可以学习到如何使用Python的pandas库以及sqlalchemy库来读写不同数据源的数据,包括CSV文件、Excel文件和MySQL数据库。掌握这些技巧后,你将能够灵活地处理各种数据读写任务,为后续的数据处理和分析工作打下坚实的基础。


网站公告

今日签到

点亮在社区的每一天
去签到