对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编程-将Python程序转化为可执行程序[整理]
Apr 09 Python
python动态加载变量示例分享
Feb 17 Python
使用Python编写爬虫的基本模块及框架使用指南
Jan 20 Python
python中学习K-Means和图片压缩
Nov 20 Python
Python跨文件全局变量的实现方法示例
Dec 10 Python
详解django的serializer序列化model几种方法
Oct 16 Python
WxPython建立批量录入框窗口
Feb 27 Python
python pygame实现滚动横版射击游戏城市之战
Nov 25 Python
python几种常用功能实现代码实例
Dec 25 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
Python爬取12306车次信息代码详解
Aug 12 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
如何将数据从文本导入到mysql
2006/10/09 PHP
cache_lite试用
2007/02/14 PHP
php绘图中显示不出图片的原因及解决
2014/03/05 PHP
php树型类实例
2014/12/05 PHP
教你在header中隐藏php的版本信息
2016/08/10 PHP
CI框架常用函数封装实例
2016/11/21 PHP
dojo 之基础篇(二)之从服务器读取数据
2007/03/24 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
深入分析javascript中的错误处理机制
2016/07/17 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
2020/11/16 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
基于vue+ bootstrap实现图片上传图片展示功能
2017/05/17 Javascript
详解angularjs 学习之 scope作用域
2018/01/15 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
Python基于分析Ajax请求实现抓取今日头条街拍图集功能示例
2018/07/19 Python
python实现单机五子棋
2020/08/28 Python
利用python 读写csv文件
2020/09/10 Python
python将下载到本地m3u8视频合成MP4的代码详解
2020/11/24 Python
Python基于Webhook实现github自动化部署
2020/11/28 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
技校毕业生的自我评价
2013/12/27 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
献爱心捐款倡议书
2014/05/14 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
中学教师个人总结
2015/02/10 职场文书
党小组评议意见
2015/06/02 职场文书
祝酒词范文
2015/08/12 职场文书
使用springMVC所需要的pom配置
2021/09/15 Java/Android