对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 相关文章推荐
pip 错误unused-command-line-argument-hard-error-in-future解决办法
Jun 01 Python
在Python中marshal对象序列化的相关知识
Jul 01 Python
使用Python的Tornado框架实现一个Web端图书展示页面
Jul 11 Python
Python 实现网页自动截图的示例讲解
May 17 Python
详解Python下ftp上传文件linux服务器
Jun 21 Python
python画微信表情符的实例代码
Oct 09 Python
Python和Sublime整合过程图示
Dec 25 Python
Anaconda+vscode+pytorch环境搭建过程详解
May 25 Python
python 使用建议与技巧分享(四)
Aug 18 Python
python实现图片,视频人脸识别(opencv版)
Nov 18 Python
PyTorch的Debug指南
May 07 Python
在Django中使用MQTT的方法
May 10 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
php实现的在线人员函数库
2008/04/09 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
PHP上传图片类显示缩略图功能
2016/06/30 PHP
PHP文件上传操作实例详解
2016/09/27 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
简单谈谈json跨域
2016/03/13 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
深入理解JS实现快速排序和去重
2016/10/17 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
vue.js或js实现中文A-Z排序的方法
2018/03/08 Javascript
JS基于封装函数实现的表格分页完整示例
2018/06/26 Javascript
JS实现将二维数组转为json格式字符串操作示例
2018/07/12 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
vue侧边栏动态生成下级菜单的方法
2018/09/07 Javascript
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
详解JWT token心得与使用实例
2019/08/02 Javascript
python搭建微信公众平台
2016/02/09 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
python3.7通过thrift操作hbase的示例代码
2020/01/14 Python
python 生成器需注意的小问题
2020/09/29 Python
Pandas中两个dataframe的交集和差集的示例代码
2020/12/13 Python
Wedgwood美国官网:英国骨瓷,精美礼品及家居装饰
2018/02/17 全球购物
企业员工培训感言
2014/02/26 职场文书
上课玩手机的检讨书
2014/10/01 职场文书
工作失误检讨书范文
2015/01/26 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python