详解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模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
Python中的time模块与datetime模块用法总结
Jun 30 Python
Pycharm学习教程(2) 代码风格
May 02 Python
深入理解Django的自定义过滤器
Oct 17 Python
对python中的for循环和range内置函数详解
Apr 17 Python
pycharm创建一个python包方法图解
Apr 10 Python
django使用admin站点上传图片的实例
Jul 28 Python
Python3 Click模块的使用方法详解
Feb 12 Python
Django-xadmin+rule对象级权限的实现方式
Mar 30 Python
django models里数据表插入数据id自增操作
Jul 15 Python
Selenium环境变量配置(火狐浏览器)及验证实现
Dec 07 Python
Python作用域和名称空间的详细介绍
Apr 13 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语言构造器介绍
2013/07/08 PHP
PHP 获取文件权限函数介绍
2013/07/11 PHP
php file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
php替换字符串中间字符为省略号的方法
2015/05/04 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
PHP中的浅复制与深复制的实例详解
2017/10/26 PHP
Jquery实现简单的动画效果代码
2012/03/18 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
简单的Jquery全选功能
2013/11/07 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
《JavaScript DOM 编程艺术》读书笔记之DOM基础
2015/01/09 Javascript
jquery通过closest选择器修改上级元素的方法
2015/03/17 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
使用async、enterproxy控制并发数量的方法详解
2018/01/02 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
简单两步使用node发送qq邮件的方法
2019/03/01 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
python使用cPickle模块序列化实例
2014/09/25 Python
Python远程开发环境部署与调试过程图解
2019/12/09 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
python支持多继承吗
2020/06/19 Python
详解python polyscope库的安装和例程
2020/11/13 Python
电子银行营销方案
2014/02/22 职场文书
美丽的大脚观后感
2015/06/03 职场文书
2015年党建工作汇报材料
2015/06/25 职场文书
django学习之ajax post传参的2种格式实例
2021/05/14 Python
python 多态 协议 鸭子类型详解
2021/11/27 Python
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python