对pandas的行列名更改与数据选择详解


Posted in Python onNovember 12, 2018

记录一些pandas选择数据的内容,此前首先说行列名的获取和更改,以方便获取数据。此文作为学习巩固。

这篇博的内容顺序大概就是: 行列名的获取 —> 行列名的更改 —> 数据选择

一、pandas的行列名获取和更改

1. 获取: df.index() df.columns()

首先,举个例子,做一个DataFrame如下:

>>>import pandas as pd
>>>import numpy as np
>>>data = pd.DataFrame({'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]})
>>>data

对pandas的行列名更改与数据选择详解

设置了列索引为 abc,行索引是自动生成的,也可以设置

>>>data.index = ['A','B','C']
>>>data

对pandas的行列名更改与数据选择详解

以下的做法都以这个 data 作为数据举例

接下来就可以获取索引了,index-行索引,columns-列索引

>>>data.index

对pandas的行列名更改与数据选择详解

>>>data.columns

对pandas的行列名更改与数据选择详解

2. 修改,看到有很多方法,这里推荐一种比较灵活好用的方法

df.rename(index={ }, columns={ }, inplace=True)
>>>data.rename(index={'A':'D', 'B':'E', 'C':'F'}, columns={'a':'d', 'b':'e', 'c':'f'}, inplace = True)
>>>data

对pandas的行列名更改与数据选择详解

说明3点:

1. index和columns无关,可以分别指定,也就是说,可以只修改行索引,那么rename()中只写index

2. 索引可以任意挑选,如此处,index={'A':'D', 'C':'F'} 则只改A和C,columns同样

3. inplace=True, 在原dataframe上改动

二、pandas的数据选择

1. 直接用索引选(不灵活、不推荐) df[ ]

1) 选择‘a'列

>>>data['a']

对pandas的行列名更改与数据选择详解

注意:

1. 这样取出的数据类型为 Series

2. 这种方法只能取出一列,不能用数字下标,不能多选或片选, data['a','b'] , data['a':'c'] , data[0]

2)选择'A','B'行

>>>data['A':'B'] 
>>>data[0:2] # 两种方法同一结果

对pandas的行列名更改与数据选择详解

注意:

1. 这样取出的数据类型为 DateFrame

2. 这种方法只能用于片选行,可以用数字下标,不能单独取,即 data['A'] , data['A','B'] , data[1]

2.使用 .loc(推荐) df.loc(),()内参数先行后列,区别行列的取法

1) 取列:

>>>data.loc[:,['a','c']] #图1 需要行全取,再对应指定列

2)取行:

>>>data.loc[['A','B']] #图2 直接指定行

3)取行列交叉值:

>>>data.loc[['A'],['b','c']] #图3

对pandas的行列名更改与数据选择详解

注意:

1. 区别 df.iloc()

.loc() —— 使用标签 label 作为索引取值

.iloc() —— 使用整数下标 index 作为索引取值,如上面三句可以换成以下三句,输出数据类型有不同

>>>data.iloc[:,[0,2]] # DataFrame
>>>data.iloc[[0,1]] # DataFrame
>>>data.iloc[0,[1,2]] # Series

2. 对于 数字类型的变量,可以使用bool 选取行,列不能用bool,如

>>>data.loc[data.b>5] # DataFrame

对pandas的行列名更改与数据选择详解

>>>data.loc[data.b>5,['c']] #DataFrame 输出为9位置的frame
>>>data.iloc[data.b.values>5,[2]] #DataFrame 输出同上,需要有 .values取值

3. .ix[ ] 可以混用label和index,位置使用同 .loc[ ] .iloc[ ]

以上这篇对pandas的行列名更改与数据选择详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
跟老齐学Python之玩转字符串(2)更新篇
Sep 28 Python
Python中内建函数的简单用法说明
May 05 Python
python flask 多对多表查询功能
Jun 25 Python
Python实现base64编码的图片保存到本地功能示例
Jun 22 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
python使用BeautifulSoup与正则表达式爬取时光网不同地区top100电影并对比
Apr 15 Python
Python实现Singleton模式的方式详解
Aug 08 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 Python
opencv-python的RGB与BGR互转方式
Jun 02 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 Python
一篇文章带你了解Python和Java的正则表达式对比
Sep 15 Python
Python numpy.array()生成相同元素数组的示例
Nov 12 #Python
浅谈numpy生成数组的零值问题
Nov 12 #Python
python生成多个只含0,1元素的随机数组或列表的实例
Nov 12 #Python
python 构造三维全零数组的方法
Nov 12 #Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 #Python
在python中pandas的series合并方法
Nov 12 #Python
浅谈python的dataframe与series的创建方法
Nov 12 #Python
You might like
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
PHP实现微信JS-SDK接口选择相册及拍照并上传的方法
2016/12/05 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
JavaScript 高效运行代码分析
2010/03/18 Javascript
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
读jQuery之十 事件模块概述
2011/06/27 Javascript
js 获取class的元素的方法 以及创建方法getElementsByClassName
2013/03/11 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
详解Angular2中的编程对象Observable
2016/09/17 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
2017/02/15 Javascript
react-native-video实现视频全屏播放的方法
2018/03/19 Javascript
layui 设置table 行的高度方法
2018/08/17 Javascript
vue.js input框之间赋值方法
2018/08/24 Javascript
详解新手使用vue-router传参时注意事项
2019/06/06 Javascript
封装微信小程序http拦截器过程解析
2019/08/13 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
Python 使用list和tuple+条件判断详解
2019/07/30 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
Python urllib库如何添加headers过程解析
2020/10/05 Python
matplotlib之pyplot模块之标题(title()和suptitle())
2021/02/22 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
最新自我评价范文
2013/11/16 职场文书
教师思想作风整顿个人剖析材料
2014/10/10 职场文书
优秀教师个人材料
2014/12/15 职场文书
开幕式邀请函
2015/01/31 职场文书
2019西餐厅创业计划书范文!
2019/07/12 职场文书
浅谈node.js中间件有哪些类型
2021/04/29 Javascript
MongoDB 常用的crud操作语句
2021/06/20 MongoDB