对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 相关文章推荐
在Django的form中使用CSS进行设计的方法
Jul 18 Python
python开发中range()函数用法实例分析
Nov 12 Python
关于反爬虫的一些简单总结
Dec 13 Python
Python3.5.3下配置opencv3.2.0的操作方法
Apr 02 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
对python模块中多个类的用法详解
Jan 10 Python
pytorch 固定部分参数训练的方法
Aug 17 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
python base64库给用户名或密码加密的流程
Jan 02 Python
Python底层封装实现方法详解
Jan 22 Python
django修改models重建数据库的操作
Mar 31 Python
Django自定义YamlField实现过程解析
Nov 11 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
第六节--访问属性和方法
2006/11/16 PHP
使用PHP获取网络文件的实现代码
2010/01/01 PHP
PHP从二维数组得到N层分类树的实现代码
2016/10/11 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
非常好用的JsonToString 方法 简单实例
2013/07/18 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
2013/11/25 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
js随机生成26个大小写字母
2016/02/12 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
微信小程序仿今日头条导航栏滚动解析
2019/08/20 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
通过javascript实现扫雷游戏代码实例
2020/02/09 Javascript
TensorFlow.js 微信小程序插件开始支持模型缓存的方法
2020/02/21 Javascript
[01:27]2014DOTA2展望TI 剑指西雅图IG战队专访
2014/06/30 DOTA
Python的ORM框架中SQLAlchemy库的查询操作的教程
2015/04/25 Python
通过数据库向Django模型添加字段的示例
2015/07/21 Python
python函数局部变量用法实例分析
2015/08/04 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
Python多层装饰器用法实例分析
2018/02/09 Python
python验证码识别教程之利用投影法、连通域法分割图片
2018/06/04 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
Python变量作用域LEGB用法解析
2020/02/04 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
使用Nibabel库对nii格式图像的读写操作
2020/07/01 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
教育学习自我评价
2014/02/03 职场文书
护理不良事件检讨书
2014/02/06 职场文书
40岁生日感言
2014/02/15 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
年度考核自我鉴定
2014/03/19 职场文书
2014年新教师工作总结
2014/11/08 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
Python代码实现双链表
2022/05/25 Python