详解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实现身份证号码解析
Sep 01 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
Jun 07 Python
Python实现识别手写数字大纲
Jan 29 Python
解决python读取几千万行的大表内存问题
Jun 26 Python
对Python3之进程池与回调函数的实例详解
Jan 22 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
基于Python数据分析之pandas统计分析
Mar 03 Python
浅谈selenium如何应对网页内容需要鼠标滚动加载的问题
Mar 14 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 Python
关于pycharm 切换 python3.9 报错 ‘HTMLParser‘ object has no attribute ‘unescape‘ 的问题
Nov 24 Python
Python读写锁实现实现代码解析
Nov 28 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
遭遇php的in_array低性能问题
2013/09/17 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
firefox浏览器不支持innerText的解决方法
2013/08/07 Javascript
jquery实现图片裁剪思路及实现
2013/08/16 Javascript
详解 javascript中offsetleft属性的用法
2015/11/11 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
2016/04/18 Javascript
JS、jQuery中select的用法详解
2016/04/21 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
node.js中module.exports与exports用法上的区别
2016/09/02 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
Angular 2父子组件之间共享服务通信的实现
2017/07/04 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
vue如何截取字符串
2019/05/06 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
jupyter notebook 实现matplotlib图动态刷新
2020/04/22 Python
python 6行代码制作月历生成器
2020/09/18 Python
利物浦足球俱乐部官方网上商店:Liverpool FC Official Store
2018/01/13 全球购物
材料采购员岗位职责
2013/12/17 职场文书
商务会议邀请函
2014/01/09 职场文书
小学生操行评语
2014/04/22 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
python自然语言处理之字典树知识总结
2021/04/25 Python
mysql的数据压缩性能对比详情
2021/11/07 MySQL
JavaScript实例 ODO List分析
2022/01/22 Javascript