对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 list 合并连接字符串的方法
Mar 09 Python
使用python开发vim插件及心得分享
Nov 04 Python
Python logging管理不同级别log打印和存储实例
Jan 19 Python
tensorflow实现逻辑回归模型
Sep 08 Python
Python字典创建 遍历 添加等实用基础操作技巧
Sep 13 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
Apr 29 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
Aug 30 Python
python统计指定目录内文件的代码行数
Sep 19 Python
Python内置加密模块用法解析
Nov 25 Python
Python类继承和多态原理解析
Feb 05 Python
python数据抓取3种方法总结
Feb 07 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 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
一个程序下载的管理程序(四)
2006/10/09 PHP
一个很不错的PHP翻页类
2009/06/01 PHP
PHP创建单例后台进程的方法示例
2017/05/23 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
利用JS重写Cognos右键菜单的实现代码
2010/04/11 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
AngularJS基础学习笔记之表达式
2015/05/10 Javascript
Bootstrap进度条组件知识详解
2016/05/01 Javascript
返回函数的JavaScript函数
2016/06/14 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
Vue项目打包压缩的实现(让页面更快响应)
2020/03/10 Javascript
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
python实现批量下载新浪博客的方法
2015/06/15 Python
Python中数字以及算数运算符的相关使用
2015/10/12 Python
关于Python面向对象编程的知识点总结
2017/02/14 Python
python实现稀疏矩阵示例代码
2017/06/09 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
Python pymongo模块常用操作分析
2018/09/01 Python
python简单实现AES加密和解密
2019/03/28 Python
Django页面数据的缓存与使用的具体方法
2019/04/23 Python
Python测试线程应用程序过程解析
2019/12/31 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
python使用自定义钉钉机器人的示例代码
2020/06/24 Python
YII2 全局异常处理深入讲解
2021/03/24 PHP
优秀实习自我鉴定
2013/12/04 职场文书
大学毕业后的十年规划
2014/01/07 职场文书