详解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实现全局变量的两个解决方法
Jul 03 Python
在Mac OS系统上安装Python的Pillow库的教程
Nov 20 Python
Python中查看文件名和文件路径
Mar 31 Python
socket + select 完成伪并发操作的实例
Aug 15 Python
Python基于回溯法子集树模板实现8皇后问题
Sep 01 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
Feb 11 Python
Python列表生成式与生成器操作示例
Aug 01 Python
python框架中flask知识点总结
Aug 17 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
Python子进程subpocess原理及用法解析
Jul 16 Python
matplotlib基础绘图命令之bar的使用方法
Aug 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
PHP 七大优势分析
2009/06/23 PHP
PHP文件上传原理简单分析
2011/05/29 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
PHP的Yii框架中行为的定义与绑定方法讲解
2016/03/18 PHP
js 页面执行时间计算代码
2009/03/04 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
nodejs的require模块(文件模块/核心模块)及路径介绍
2013/01/14 NodeJs
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
微信浏览器下拉黑边解决方案 wScroollFix
2020/01/21 Javascript
[02:25]DOTA2英雄基础教程 虚空假面
2014/01/02 DOTA
Python爬取读者并制作成PDF
2015/03/10 Python
深入Python函数编程的一些特性
2015/04/13 Python
简单上手Python中装饰器的使用
2015/07/12 Python
浅谈Python peewee 使用经验
2017/10/20 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
Python unittest单元测试框架实现参数化
2020/04/29 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
C#面试常见问题
2013/02/25 面试题
艺术节主持词
2014/04/02 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
入党积极分子群众意见
2015/06/01 职场文书
工作简报格式范文
2015/07/21 职场文书
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫