对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的信号机制详解
May 05 Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
让代码变得更易维护的7个Python库
Oct 09 Python
Python matplotlib的使用并自定义colormap的方法
Dec 13 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
对python3中, print横向输出的方法详解
Jan 28 Python
Python中的四种交换数值的方法解析
Nov 18 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
Dec 25 Python
pytorch构建多模型实例
Jan 15 Python
python Plotly绘图工具的简单使用
Mar 03 Python
mac 上配置Pycharm连接远程服务器并实现使用远程服务器Python解释器的方法
Mar 19 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
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
基于PHP异步执行的常用方式详解
2013/06/03 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
javascript基础的动画教程,直观易懂
2007/01/10 Javascript
form中限制文本字节数js代码
2007/06/10 Javascript
jquery ajax 登录验证实现代码
2009/09/23 Javascript
一个仿糯米弹框效果demo
2014/07/22 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
JS面向对象编程详解
2016/03/06 Javascript
js的form表单提交url传参数(包含+等特殊字符)的两种解决方法
2016/05/25 Javascript
Bootstrap基本组件学习笔记之列表组(11)
2016/12/07 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
AngularJS读取JSON及XML文件的方法示例
2017/05/25 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
[02:06]DOTA2肉山黑名单魔法终结者 敌法师中文配音鉴赏
2013/06/17 DOTA
[04:05]TI9战队采访 - Natus Vincere
2019/08/22 DOTA
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
Python多线程中阻塞(join)与锁(Lock)使用误区解析
2018/04/27 Python
python3.4控制用户输入与输出的方法
2018/10/17 Python
对python中if语句的真假判断实例详解
2019/02/18 Python
Python学习笔记之视频人脸检测识别实例教程
2019/03/06 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
python 等差数列末项计算方式
2020/05/03 Python
Python如何安装第三方模块
2020/05/28 Python
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
英国婴儿及儿童产品商店:TigerParrot
2019/03/04 全球购物
简述安装Slackware Linux系统的过程
2012/05/08 面试题
2014年六一儿童节演讲稿
2014/05/23 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
员工拾金不昧表扬稿
2015/05/05 职场文书
电力安全教育培训心得体会
2016/01/11 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js