对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实现SMTP邮件发送功能
Jun 16 Python
python 递归遍历文件夹,并打印满足条件的文件路径实例
Aug 30 Python
PyQt5每天必学之进度条效果
Apr 19 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
基于python实现简单日历
Jul 28 Python
Python正则表达式指南 推荐
Oct 09 Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
Python使用lambda表达式对字典排序操作示例
Jul 25 Python
Python表达式的优先级详解
Feb 18 Python
浅析python标准库中的glob
Mar 13 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验证码函数
2016/05/19 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
原生JS实现旋转木马式图片轮播插件
2016/04/25 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
如何在Vue.JS中使用图标组件
2020/08/04 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
Python基础之函数用法实例详解
2014/09/10 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
python实现数据分析与建模
2019/07/11 Python
Django的ListView超详细用法(含分页paginate)
2020/05/21 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
美国帽子俱乐部商店:Hat Club
2019/07/05 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
会计实习自我鉴定
2013/12/04 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
空气环保标语
2014/06/12 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
建设工程授权委托书
2014/09/22 职场文书
执法作风整顿剖析材料
2014/10/11 职场文书
家长会主持词开场白
2015/05/29 职场文书
职场新人刚入职工作总结该怎么写?
2019/05/15 职场文书
室外天线与收音机天线杆接合方法
2022/04/05 无线电