详解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 布尔操作实现代码
Mar 23 Python
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
Jun 04 Python
Python3中的2to3转换工具使用示例
Jun 12 Python
通过5个知识点轻松搞定Python的作用域
Sep 09 Python
Python多层装饰器用法实例分析
Feb 09 Python
高效使用Python字典的清单
Apr 04 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 Python
用 Python 制作地球仪的方法
Apr 24 Python
Python reversed反转序列并生成可迭代对象
Oct 22 Python
python 实现性别识别
Nov 21 Python
python读取mnist数据集方法案例详解
Sep 04 Python
Python sklearn分类决策树方法详解
Sep 23 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中使用$_REQUEST需要注意的一个问题
2013/05/02 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
php单文件版在线代码编辑器
2015/03/12 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
PHP的微信支付接口使用方法讲解
2019/03/08 PHP
JS中style属性
2006/10/11 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
JS声明变量背后的编译原理剖析
2012/12/28 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
前端跨域的几种解决方式总结(推荐)
2017/08/16 Javascript
vue项目使用高德地图的定位及关键字搜索功能的实例代码(踩坑经验)
2020/03/07 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
[52:29]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第三局
2016/03/03 DOTA
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
Python基于递归算法求最小公倍数和最大公约数示例
2018/07/27 Python
利用python numpy+matplotlib绘制股票k线图的方法
2019/06/26 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
2020/01/08 Python
JYSK加拿大:购买家具、床垫、家居装饰等
2020/02/14 全球购物
JAVA软件工程师测试题
2014/07/25 面试题
机修工岗位职责
2013/11/24 职场文书
会议开场欢迎词
2014/01/15 职场文书
会计个人实习计划书
2014/08/15 职场文书
golang 实现两个结构体复制字段
2021/04/28 Golang
python中的mysql数据库LIKE操作符详解
2021/07/01 MySQL
mysql查询结果实现多列拼接查询
2022/04/03 MySQL