详解pandas的外部数据导入与常用方法


Posted in Python onMay 01, 2019

外部数据导入

导入excel文件

pandas导入excel用read_excel()方法:

import pandas as pd


excel_file1 = pd.read_excel('data/测试.xlsx',encoding='utf-8')

姓名  年龄    工作    工资
0   张三  25    学生      200
1   李四  24    工人     3000
2   王伟  28    NaN      5000
3  王二毛  22  自由职业   6000

第一个参数是路径,既可以使用绝对路径又可以使用相对路径,如果文件名含有汉字,注意指定设置一下属性encoding = 'utf-8',另设置sheet_name指定具体的Sheet名字,也可传入sheet的顺序,从0开始。

excel_file1 = pd.read_excel('data/test.xlsx',sheet_name = 0)

指定索引

列索引默认从0开始,通过index_col设置,header设置行索引。

excel_file1 = pd.read_excel('data/测试.xlsx',encoding='utf-8',index_col=0)

年龄    工作    年资
姓名                
张三   25    学生      200
李四   24    工人     3000
王伟   28   NaN       5000
王二毛  22  自由职业   6000

excel_file1 = pd.read_excel('data/测试.xlsx',encoding='utf-8',header=1)

张三  25    学生     200
0   李四  24    工人    3000
1   王伟  28   NaN      5000
2  王二毛  22  自由职业  6000

指定索引列

有时本地文件列数太多,可以设置usercols指定导入的列,也可以列表形式传入多个值,表示传入哪些列。

excel_file1 = pd.read_excel('data/测试.xlsx',encoding='utf-8',usecols=[0,2])

姓名    工作
0   张三    学生
1   李四    工人
2   王伟    NaN
3  王二毛  自由职业

常用方法

  • shape() 可以获取excel文件的行和列,以元祖形式返回;
  • info() 获取数据类型;
  • astype() 可转换列里面的数据类型,括号里是要转换的目标类型;如 df[列2].astype('float64') ; df['列'].dtype 可查看列的类型
  • isnull() 判断哪个值是缺失值;
  • dropna() 删除有缺失值的行,返回删除后的数据,传入参数how=all,要全为空值才会删除;
  • fillna() 括号内可直接填入要要填充的值,也可指定列填充,以 字典 形式传参;
  • drop_duplicates() 默认对所有重复值判断,默认保留 keep=first 第一个行值;通过 keep 修改,值可为 last ,保留最后一个,还可设置 keep 为 False ,一个也不保留。另也可指定列名去重,如传入参数 subset =['列名1,列名2'],注意是以列表形式传参;
  • head() 传入的参数代表获取前几行;
  • describe() 掌握数值的分布情况,如均值,最值,方差,分位数。
  • column 和 index 可设置 列索引 和 行索引 ,以 列表 形式传参;
  • set_index() 重新设置索引列,传入要指名要用做行索引的名称;
  • reset_index(level = None,drop=False,inplace = False) ,level指定要将层次化索引的第几级别转化为 columns ,第一个索引为0级,第二个为1级,默认全部转化为columns。 drop 是否将原索引删掉, inplace 是否修改原数据表;该方法常用于数据分组和数据透视表中。
  • rename() 重命名索引,可重新设置 columns 和 index ,以 字典 形式传参, key 为原值, value 为替换后的值。

导入CSV文件

pandas导入csv文件用read_csv()方法;

import pandas as pd
csv_file1 = pd.read_csv('.\\data\\train-pivot.csv',index_col=0,header=0,nrows = 2)

通过 sep 设置分割符, encoding 指定编码格式。导入csv文件要指定为gbk,不然会报错,如果一个大文件你只需看前面几行,通过 nrows 设置。

import pandas as pd
csv_file1 = pd.read_csv('data/train-pivot.csv',encoding='gbk',nrows=2)
print(csv_file1)

用户ID 客户分类    区域 是否省会  7月销量  8月销量 
0  59224   A类  一线城市    是     6    20     0
1  55295   B类  三线城市    否    37    27    35

可以设置 usercols 指定导入的列。

用户ID    区域
0  59224  一线城市
1  55295  三线城市
2  46035  二线城市
3   2459  一线城市
4  22179  三线城市

导入sql

pandas中有 read_sql() 方法:

import pandas as pd
import pymysql
# 创建连接
conn = pymysql.connect(host = 'localhost',user = 'python',
            password = 'passwd',db = 'test',
            charset = 'utf-8'
            )
'''
user:用户名
password:密码
host:数据库地址/本机用localhost
db:数据库名
charset:编码,一般为utf-8
'''
sql = "SELECT * FROM user" # 写要执行的sql语句
pd.read_sql(sql,conn)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
调试Python程序代码的几种方法总结
Apr 28 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
Python动刷新抢12306火车票的代码(附源码)
Jan 24 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
Mar 05 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
Python 实现Windows开机运行某软件的方法
Oct 14 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
Jun 19 Python
PyQt5重写QComboBox的鼠标点击事件方法
Jun 25 Python
mac使用python识别图形验证码功能
Jan 10 Python
Python类的动态绑定实现原理
Mar 21 Python
Python答题卡识别并给出分数的实现代码
Jun 22 Python
python工具dtreeviz决策树可视化和模型可解释性
Mar 03 Python
Python3.5文件读与写操作经典实例详解
May 01 #Python
Python3.5集合及其常见运算实例详解
May 01 #Python
Django给admin添加Action的步骤详解
May 01 #Python
Django重置migrations文件的方法步骤
May 01 #Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 #Python
浅谈Python编程中3个常用的数据结构和算法
Apr 30 #Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 #Python
You might like
Protoss建筑一览
2020/03/14 星际争霸
php计算数组不为空元素个数的方法
2014/01/27 PHP
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
js获取图片大小的函数代码
2011/09/20 Javascript
JS中Iframe之间传值及子页面与父页面应用
2013/03/11 Javascript
比较不错的JS/JQuery显示或隐藏文本的方法
2014/02/13 Javascript
浅谈Javascript中的函数、this以及原型
2016/10/09 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
详解Node.js一行命令上传本地文件到服务器
2019/04/22 Javascript
原生js生成图片验证码
2020/10/11 Javascript
[02:00]DOTA2英雄COSPLAY闹市街头巡游助威2015国际邀请赛
2015/08/02 DOTA
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
django model通过字典更新数据实例
2020/04/01 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
python读取excel进行遍历/xlrd模块操作
2020/07/12 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
C语言笔试集
2012/07/24 面试题
建筑文秘专业个人求职信范文
2013/12/28 职场文书
考博专家推荐信
2014/05/10 职场文书
学校教师安全责任书
2014/07/23 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
爱心捐款活动总结
2015/05/09 职场文书
工作态度怎么写
2015/06/25 职场文书
初中化学教学反思
2016/02/22 职场文书
幼儿教师三分钟演讲稿
2019/06/21 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
mybatis调用sqlserver存储过程返回结果集的方法
2021/05/08 SQL Server
sql查询结果列拼接成逗号分隔的字符串方法
2021/05/25 SQL Server
python中的getter与setter你了解吗
2022/03/24 Python
Golang 链表的学习和使用
2022/04/19 Golang
sql查询语句之平均分、最高最低分及排序语句
2022/05/30 MySQL