详解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 25 Python
Python3如何解决字符编码问题详解
Apr 23 Python
Ubuntu下使用Python实现游戏制作中的切分图片功能
Mar 30 Python
Python基于dom操作xml数据的方法示例
May 12 Python
python matplotlib绘图,修改坐标轴刻度为文字的实例
May 25 Python
python实现flappy bird小游戏
Dec 24 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
TensorFlow 多元函数的极值实例
Feb 10 Python
Python网络爬虫四大选择器用法原理总结
Jun 01 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
python如何将图片转换素描画
Sep 08 Python
Python中glob库实现文件名的匹配
Jun 18 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
一个用php3编写的简单计数器
2006/10/09 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
php连接数据库代码应用分析
2011/05/29 PHP
php.ini 配置文件的深入解析
2013/06/17 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
解析JavaScript数组方法reduce
2016/12/12 Javascript
关于iframe跨域POST提交的方法示例
2017/01/15 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
详解Node.js开发中的express-session
2017/05/19 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
Python获取远程文件大小的函数代码分享
2014/05/13 Python
Python代码实现KNN算法
2017/12/20 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
解决pycharm无法调用pip安装的包问题
2018/05/18 Python
python实现最长公共子序列
2018/05/22 Python
获取Pytorch中间某一层权重或者特征的例子
2019/08/17 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
python如何编写win程序
2020/06/08 Python
python脚本第一行如何写
2020/08/30 Python
吃透移动端 1px的具体用法
2019/12/16 HTML / CSS
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
英国最大的汽车配件在线商店:Euro Car Parts
2019/09/30 全球购物
EJB的几种类型
2012/08/15 面试题
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
2012/06/20 面试题
中职生自我鉴定范文
2013/10/03 职场文书
高中生毕业自我鉴定范文
2013/12/22 职场文书
部队学习十八大感言
2014/01/11 职场文书
党员创先争优心得体会
2014/09/11 职场文书
毕业论文指导教师评语
2014/12/30 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
Spring 使用注解开发
2022/05/20 Java/Android