三、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 ...
随机推荐
- 数据库(mysql)基础操作
DDL(数据定义语言)------>建库,建表 DML(数据操作语言)------>对表中的记录操作增删改查 DQL(数据查询语言)------>对表中的查询操作 DCL(数据控制语 ...
- VScode快捷键集锦(持续更新)
本文的快捷键是根据VScode for mac来的,Windows和Linux用户可能需要些许改动. 注释:cmd + / 注释当前选中的行,或者注释掉选中的行,再按一次反注释.还可以在按cmd + ...
- centos7搭建EFK
环境: system: CentOS Linux release 7.7.1908 elasticsearch: elasticsearch-7.5.1-1.x86_64 kibana: kibana ...
- c#openCV图片传递-尝试读取或写入受保护的内存。这通常指示其他内存已损坏。解决方法
未处理AccessViolationException 这通常指示其他内存已损坏,这里内存损坏并非物理的内存条损坏.猜想是执行到此步骤后,内存空间被清理了,没有找到内存地址的感觉. public st ...
- rest_framework django 简单使用(数据库创建数据, 覆盖数据, 其他的大同小异)
事先说几个坑:数据库定义字段时候,不要定义name 要定义 username 首先, 定义model(简单定义) from django.db import models from django.co ...
- Linux MySQL Proxy 读写分离
导读 因为读写分离是建立在MySQL集群主从复制的基础上,还不了解的,先看我另一篇博客:点我直达 MySQL-Proxy简介 mysql-proxy是mysql官方提供的mysql中间件服务,上游可接 ...
- Task.Result跟 Task.GetAwaiter.GetResult()相同吗?怎么选?
前几天在用线程池执行一些任务时运到一种情形,就是回调方法中使用到了异步方法,但是回调方法貌似不支持async await的写法.这时候我应该如何处理呢?是使用Task.Result来获取返回结果,还是 ...
- WeChair项目Alpha冲刺(10/10)
团队项目进行情况 1.昨日进展 Alpha冲刺第十天 昨日进展: 前端:安排页面美化,设计实名认证 后端:更新dao层代码 数据库:修改数据表属性,与后端部署数据库交互 2.今日安排 前端:继续 ...
- 关于日期格式你必须知道的坑( yyyy-MM-dd HH:mm:ss)
java中的的日期格式为: yyyy-MM-dd HH:mm:ss:代表将时间转换为24小时制,例: 2018-06-27 15:24:21yyyy-MM-dd hh:mm:ss:代表将时间转换为12 ...
- Netty的Marshalling编解码器
1.编码与解码 通常我们习惯将编码(Encode)称为序列化(serialization),它将对象序列化为字节数组,用于网络传输.数据持久化或者其它用途.反之,解码(Decode)称为反序列化 ...