当前位置:   article > 正文

Python数据可视化:数据的读取_python读取数据库

python读取数据库

目录

csv数据

1.文本文件读取

 示例代码:

2. 文本文件存储

​示例代码:

Excel文件数据

1. Excel文件读取

示例代码:

2. Excel文件存储

数据库数据

1. 数据库数据读取

示例代码:

2. 数据库存储

示例代码:


数据的读取是进行数据预处理、数据建模和分析的基础。

对于不同的数据文件,pandas提供了不同函数进行读取。

pandas内置了10余种读写函数。

常见的数据文件格式有3种形式,分别是CSV文件、Excel文件和数据库。

csv数据

1.文本文件读取

  • CSV文件是以纯文本形式存储表格数据(数字和文本)。
  • CSV文件由任意数目的记录组成,记录间以某种换行符分隔。每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符
  • CSV文件是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。

pandas提供了read_csv函数来读取csv文件。

pandas.read_csv(filepath_or_buffer, sep='\t', header='infer', names=None, index_col=None, dtype=None, engine=None, nrows=None)

 示例代码:

  1. # 代码2-1
  2. # 使用read_csv读取销售流水记录表
  3. import pandas as pd
  4. data1 = pd.read_csv('../data/销售流水记录1.csv', encoding='gb18030')
  5. print('使用read_csv读取的销售流水记录表的长度为:', len(data1))
  6. # 代码2-2
  7. # 使用read_csv读取销售流水记录表, header=None
  8. data2 = pd.read_csv('../data/销售流水记录2.csv', header=None, encoding='gb18030')
  9. print('使用read_csv读取的销售流水记录表的长度为:', len(data2))
  10. print('列名为None时订单信息表为:')
  11. data2.iloc[0:5,0:4]
  12. # 使用utf-8解析销售流水记录表
  13. data3 = pd.read_csv('../data/销售流水记录2.csv', header=None, encoding='utf-8')

2. 文本文件存储

 文本文件的存储和读取类似,结构化数据可以通过pandas中的to_csv函数实现以csv文件格式存储文件。

DataFrame.to_csv(path_or_buf=None, sep=',', na_rep='', columns=None, header=True, index=True, index_label=None, mode='w', encoding=None)

 示例代码:

  1. # 代码2-3
  2. import os
  3. print('销售流水记录表写入文本文件前目录内文件列表为:\n', os.listdir('../tmp'))
  4. data1.to_csv('../tmp/SaleInfo.csv', sep=';', index=False) # 将data1以CSV格式存储
  5. print('销售流水记录表表写入文本文件后目录内文件列表为:\n', os.listdir('../tmp'))

Excel文件数据

1. Excel文件读取

pandas提供了read_excel函数来读取“xls”“xlsx”两种Excel文件。

pandas.read_excel(io, sheetname=0, header=0, index_col=None, names=None, dtype=None)

示例代码:

  1. # 代码2-4
  2. data3 = pd.read_excel('../data/折扣信息表.xlsx') # 读取折扣信息表的数据
  3. print('data3信息长度为:', len(data3))


2. Excel文件存储

将文件存储为Excel文件,可以使用to_excel方法。其语法格式如下。

DataFrame.to_excel(excel_writer=None, sheetname=None, na_rep='', header=True, index=True, index_label=None, mode='w', encoding=None)

to_excel函数和to_csv函数的常用参数基本一致,区别之处在于指定存储文件的文件路径参数名称为excel_writer,并且没有sep参数。

此外,还增加了一个sheetnames参数,用于指定存储的Excel Sheet的名称,默认为sheet1。

  1. # 代码2-5
  2. print('data3写入Excel文件前目录内文件列表为:\n', os.listdir('../tmp'))
  3. data3.to_excel('../tmp/data_save.xlsx')
  4. print('data3写入Excel文件后目录内文件列表为:\n', os.listdir('../tmp'))

数据库数据

1. 数据库数据读取

pandas提供了读取与存储关系型数据库数据的函数与方法。除了pandas库外,还需要使用SQLAlchemy库建立对应的数据库连接。SQLAlchemy配合相应数据库的Python连接工具,使用create_engine函数,建立一个数据库连接。

creat_engine中填入的是一个连接字符串。在使用Python的SQLAlchemy时,MySQL和Oracle数据库连接字符串的格式如下:

数据库产品名+连接工具名://用户名:密码@数据库IP地址:数据库端口号/数据库名称?charset = 数据库         数据编码

read_sql_table只能够读取数据库的某一个表格,不能实现查询的操作。

pandas.read_sql_table(table_name, con, schema=None, index_col=None, coerce_float=True, columns=None)

read_sql_query则只能实现查询操作,不能直接读取数据库中的某个表。

pandas.read_sql_query(sql, con, index_col=None, coerce_float=True)

read_sql是两者的综合,既能够读取数据库中的某一个表,也能够实现查询操作。

pandas.read_sql(sql, con, index_col=None, coerce_float=True, columns=None).

示例代码:

  1. # 代码2-6
  2. import pandas as pd
  3. import sqlalchemy
  4. # 创建一个mysql连接器,用户名为root,密码为123456
  5. # 地址为127.0.0.1,数据库名称为test
  6. sqlalchemy_db = sqlalchemy.create_engine(
  7. 'mysql+pymysql://root:123456@127.0.0.1:3306/test')
  8. print(sqlalchemy_db)
  9. # 代码2-7
  10. import pandas as pd
  11. # 使用read_sql_query函数查看test中的数据表数目
  12. formlist = pd.read_sql_query('show tables', con=sqlalchemy_db)
  13. print('testdb数据库数据表清单为:', '\n', formlist)
  14. # 使用read_sql_table函数读取销售流水记录表sale2
  15. detail1 = pd.read_sql_table('sale2', con=sqlalchemy_db)
  16. print('使用read_sql_table读取销售流水记录表的长度为:', len(detail1))
  17. # 使用read_sql函数读取销售流水记录表
  18. detail2 = pd.read_sql('select * from sale2', con=sqlalchemy_db)
  19. print('使用read_sql函数 + sql语句读取销售流水记录表的长度为:', len(detail2))
  20. detail3 = pd.read_sql('sale2', con=sqlalchemy_db)
  21. print('使用read_sql函数+表格名称读取的销售流水记录表的长度为:', len(detail3))

 

2. 数据库存储

将DataFrame数据写入数据库中,同样也要依赖SQLAlchemy的数据库连接。数据库数据读取有3个函数,但数据存储则只有一个to_sql()方法。

DataFrame.to_sql(name, con, schema=None, if_exists='fail', index=True, index_label=None, dtype=None)

 

示例代码:

  1. # 代码2-8
  2. # 使用to_sql方法存储orderData
  3. detail1.to_sql('sale_copy', con=sqlalchemy_db, index=False, if_exists='replace')
  4. # 使用read_sql读取test表格
  5. formlist1 = pd.read_sql_query('show tables', con=sqlalchemy_db)
  6. print('新增一个表格后test数据库数据表清单为:', '\n', formlist1)
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/596025
推荐阅读
相关标签
  

闽ICP备14008679号