对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之模拟鼠标键盘动作具体实现
Dec 30 Python
python 网络爬虫初级实现代码
Feb 27 Python
python使用sqlite3时游标使用方法
Mar 13 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 Python
详解Python 装饰器执行顺序迷思
Aug 08 Python
python Pillow图像处理方法汇总
Oct 16 Python
详解Python中的format格式化函数的使用方法
Nov 20 Python
centos7中安装python3.6.4的教程
Dec 11 Python
Python栈的实现方法示例【列表、单链表】
Feb 22 Python
python获取linux系统信息的三种方法
Oct 14 Python
Python如何急速下载第三方库详解
Nov 02 Python
python Pexpect模块的使用
Dec 25 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
农民和部队如何穿矿
2020/03/04 星际争霸
php中神奇的fastcgi_finish_request
2011/05/02 PHP
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
PHP中一个有趣的preg_replace函数详解
2018/08/15 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
用js实现的仿sohu博客更换页面风格(简单版)
2007/03/22 Javascript
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
2014/10/31 Javascript
js脚本实现数据去重
2014/11/27 Javascript
jQuery获取与设置iframe高度的方法
2016/08/01 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
详解vue 计算属性与方法跟侦听器区别(面试考点)
2018/04/23 Javascript
[37:50]VP vs TNC Supermajor小组赛B组 BO3 第一场 6.2
2018/06/03 DOTA
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
Python循环语句之break与continue的用法
2015/10/14 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
修改python plot折线图的坐标轴刻度方法
2018/12/13 Python
详解python uiautomator2 watcher的使用方法
2019/09/09 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
Django密码存储策略分析
2020/01/09 Python
Pycharm IDE的安装和使用教程详解
2020/04/30 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
墨西哥网上超市:Superama
2018/07/10 全球购物
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
数字天堂软件测试面试题
2012/12/23 面试题
材料物理专业个人求职信
2013/12/15 职场文书
投标保密承诺书
2014/05/19 职场文书
土木工程求职信
2014/05/29 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
利用python做表格数据处理
2021/04/13 Python