三、Python系列——Pandas数据库读取数据
Pandas主要先读取表格类型的数据,然后进行分析。

import pandas as pd
# 由于是用pandas模块操作数据,因此不用在路径前加open,否则就是python直接打开文件,可能还会打不开出错
# file_path_excel = open('E:\\学习\\Python\\Pandas模块的导入及学习-数据分析\\bank.xls')是错的
# 文件所在的位置,文件路径用双杠\\,或是反方向单杠/, 或在文件路径前加一个r即可直接使用原路径的单杠\即:r'\'
# 'E:\\学习\\bank.csv' 或 'E:/学习/bank.csv' 或 r'E:\学习\bank.csv' 都是正确的
1.读取纯文本文件 --使用pandas.read_csv
1.1 读取csv,使用默认的标题行、逗号分隔符--有时csv文本中的数据编码不兼容,打开时出错,read_csv(..,encoding=’换一种更通用更高级的编码如gbk,gb18030等即可’)


file_path_csv = 'E:\\学习\\Python\\Pandas模块的导入及学习-数据分析\\bank.csv' # 文件路径为\\或/或r'\'都可
bank_csv = pd.read_csv(file_path_csv) # 使用pandas.read_csv读取文件
print(bank_csv.head()) # 查看前几行数据,默认显示前5行数据
print(bank_csv.shape) # 查看数据的形状,返回(行数,列数)
print(bank_csv.dtypes) # 查看每列的数据类型
1.2 读取txt文件,自己制定分隔符

file_path_txt = 'E:\\学习\\Python\\Pandas模块的导入及学习-数据分析\\bank.txt'
bank_txt = pd.read_csv(file_path_txt, sep=' ', header=None, names=['name', 'password', 'balance'])
# sep=' '空格为自己设定的分隔符,,默认是','号;header=None 如果不将数据集的第一行作为表头,需要设置header=None,
# header指定行数用来作为列名,数据开始行数,如果需要第一行做表头 header=0 即可;names后面是自己加入指定的标题
# bank_txt = pd.read_csv(file_path_txt, sep=' ', header=0)
print(bank_txt)
2.读取excel文件--使用pandas.read_excel

bank_excel = pd.read_excel('E:/学习/Python/Pandas模块的导入及学习-数据分析/bank.xls', sheet_name='user')
print(bank_excel)


2.1 读取同一文件下的多个sheet数据--使用pandas.ExcelFile('文件名')

excel_reader = pd.ExcelFile(r'C:\Users\Administrator\Desktop\test.xls') # 指定文件
"""
sheet_names = excel_reader.sheet_names # 读取文件的所有表单名,得到列表
# 读取表单的内容,i是表单名的索引,等价于pd.read_excel('文件', sheet_name=sheet_names[i])
df_data = excel_reader.parse(sheet_name=sheet_names[i])
"""
df1 = excel_reader.parse(sheet_name='') # 读取表单内容
df2 = excel_reader.parse(sheet_name='')
2.2 对excel的一些简单操作

print(bank_excel.shape) # 读取行列
n_rows = bank_excel.shape[0]
print(n_rows) # 读取最大行
n_columns = bank_excel.columns.size
print(n_columns) # 读取最大列
print(bank_excel.iloc[0, 1]) # 读取指定行列内容 列和行的序号都从0开始,且iloc索引不含标题行
# iloc与loc的区别在于,iloc[行号,列号]而不是loc[行名,列名] for i in range(n_rows):
for j in range(n_columns):
print(bank_excel.iloc[i, j]) # 遍历表格 print(bank_excel.iloc[0].values) # iloc索引 返回列表除标题外的第一行数据
print(bank_excel.index.values) # 获取行号并打印输出
print(bank_excel.columns.values) # 获取列名并打印输出 r = bank_excel.loc[bank_excel['name'] == 'tom'] # 输出筛选的数据内容
e = bank_excel.loc[bank_excel['balance'] >= 1000]
s = bank_excel.loc[bank_excel['name'].str.contains('o')] # 输出含有字符o的数据
# 组合条件用&符号合并,每个条件判断都得带括号
m = bank_excel.loc[(bank_excel['balance'] >= 1000) & (bank_excel['name'] == 'tom')]
u = bank_excel.loc[:, ['name', 'balance']] # 输出指定列的所有内容
l = bank_excel.loc[0:2, ['name', 'balance']] # 输出指定列的0-2行数据内容
t = bank_excel.loc[0:2, ] # 输出指定行0-2行数据
print(r)
print(s)
3.读取MySQL数据库

import pymysql
connect_mysql = pymysql.connect(host='S1KBB', user='sa', password='wwyy1234',database='test1', charset='utf8')
# pymysql.connect(host=“你的数据库地址--一般是计算机名”, user=“用户名”,password=“密码”,database=“数据库名”,charset=“utf8”)
mysql_page = pd.read_sql('select * from [test1].[dbo].[course]', con=connect_mysql)
print(mysql_page)
三、Python系列——Pandas数据库读取数据的更多相关文章
- 10天学会phpWeChat——第三天:从数据库读取数据到视图
在第二天,我们创建了我们的第一个phpWeChat功能模块,但是比较简单.实际生产环境中,我们不可能有如此简单的需求.更多的情况是数据存储在MySql数据库中,我们开发功能模块的作用就是将这些数据从M ...
- python连接mysql数据库读取数据
#-*- coding:utf-8 -*- #Author:'Lmc' #DATE: 2019/4/28/0028 上午 11:22:47 #FileName:test.PY import pymys ...
- Python利用pandas处理Excel数据的应用
Python利用pandas处理Excel数据的应用 最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做 ...
- echarts通过ajax向服务器发送post请求,servlet从数据库读取数据并返回前端
1.echarts的官网上的demo,都是直接写死的随机数据,没有和数据库的交互,所以就自己写了一下,ok,我们开始一步一步走一遍整个流程吧. 就以官网最简单的那个小demo来做修改吧.官网上的小de ...
- C#实现从数据库读取数据到Excel
用第三方组件:NPOI来实现 先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用.使用 NPOI ...
- JMeter 参数化之利用JDBCConnectionConfiguration从数据库读取数据并关联变量
参数化之利用DBC Connection Configuration从数据库读取数据并关联变量 by:授客 QQ:1033553122 1. 下载mysql jar包 下载mysql jar包 ...
- Android打开数据库读取数据
打开数据库读取数据 private MyDatabaseHelper dbHelper; dbHelper=new MyDatabaseHelper(this,"List.db", ...
- 使用python将mysql数据库的数据转换为json数据
由于产品运营部需要采用第三方个推平台,来推送消息.如果手动一个个键入字段和字段值,容易出错,且非常繁琐,需要将mysql的数据转换为json数据,直接复制即可. 本文将涉及到如何使用Python访问M ...
- 【转】用python比对数据库表数据的脚本
最近在做一个数据库异构复制的项目,客户表示需要一个数据比对的工具,我就自己写了一个异构数据库的比对python脚本.这个比对脚本只能比对数量,不能比对具体的记录.使用的sql语句也是最基础的selec ...
随机推荐
- openresty用haproxy2.0实现负载均衡
安装openresty 编译安装 yum install pcre-devel openssl-devel gcc curl wget wget https://openresty.org/downl ...
- LaTeX中常用代码段snippets(持续更新)
1.displaymath 单行数学环境,不带编号. \begin{displaymath} This\ is\ displaymath\ envirment.\ I\ don 't\ have\ a ...
- navicat 出现 mysql远程连接问题 Lost connection to MySQL server at ‘reading initial communication packet', system error: 0
今天做服务器上的东西需要看数据库时,突然发现有这个报错,然后自己也查了很多资料 我最后找到一个在my,cnf配置文件中mysqld下加入一条 max_allowed_packet = 500M 也就是 ...
- Redis的常用配置
1. 配置守护线程方式运行,修改damonize,使用yes启用守护线程,这样就可以后台运行了 damonize no 修改为 damonize yes 2. 手动指定redis的pid,可以通过pi ...
- WeChair Plus版项目介绍
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 团队名称 WeChair 这个作业要求在哪里 团队作业第一次:团队作业第一次(2) 这个作业的目标 项目介绍,项目修改 作业正文 ...
- Redis自带压测工具(redis-benchmark.exe)
redis做压测: 可以用自带的redis-benchmark工具,使用简单 压测命令:redis-benchmark -h 127.0.0.1 -p 6379 -c 50 -n 10000 压测需要 ...
- 7-4 是否同一棵二叉搜索树 (25分) JAVA
给定一个插入序列就可以唯一确定一棵二叉搜索树.然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到. 例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结 ...
- py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe. : java.lang.IllegalArgumentException: Unsupported class file major version 55
今天小编用Python编写Spark程序报了如下异常: py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apach ...
- Chrome插件Postman的数据目录存储位置,记一次重装系统后找回postman数据的过程...
有次重装系统到一块新的SSD磁盘,很多数据都做了备份就是忘记将Chrome插件Postman的数据做备份,导致重装后找不到以前定义的那些Collections.悔恨之余想到既然我原来的C盘还在,为何不 ...
- centos7 mysql8.0替换为5.7版本
今天按教程把mysql 的yum文件下载下来安装好,是8.0版本的,安装社区版的时候发现现在的8.0版本有1.7G那么大,就想重新安装5.7版本的,然后网上又找到一个5.7版本的yum,发现不能替换, ...