pandas DataFrame索引行列的实现


Posted in Python onJune 04, 2019
  • python版本: 3.6
  • pandas版本: 0.23.4

行索引

索引行有三种方法,分别是 loc iloc ix

import pandas as pd
import numpy as np

index = ["a", "b", "c", "d"]
data = np.random.randint(10, size=(4, 3))
df = pd.DataFrame(data, index=index)

"""
  0 1 2
a 9 7 1
b 0 0 7
c 2 6 5
d 8 2 5
"""

loc

loc通过行索引名字来确定行的

单行索引, 返回Series对象

df.loc["a"]
"""
0  9
1  7
2  1
Name: a, dtype: int64
"""

df.loc["b"]
"""
0  0
1  0
2  7
Name: b, dtype: int64
"""

多行索引, 返回DataFrame对象

df.loc[["a", "c"]]
"""
  0 1 2
a 9 7 1
c 2 6 5
"""

iloc

通过行索引序号来确定行的

单行索引, 返回Series对象

df.iloc[0]
"""
0  9
1  7
2  1
Name: a, dtype: int64
"""

df.iloc[1]
"""
0  0
1  0
2  7
Name: b, dtype: int64
"""

多行索引, 返回DataFrame对象

df.iloc[[0, 2]]
"""
  0 1 2
a 9 7 1
c 2 6 5
"""

ix(不建议使用)

通过行索引名字或序号来确定行的, 如果行索引 index 的类型为整型时, 使用 ix 方法索引时为按行索引名字进行索引, 如行索引名不存在则会报错

index = [2, 3, 4, 5]
df = pd.DataFrame(data, index=index)

"""
  0 1 2
2 9 7 1
3 0 0 7
4 2 6 5
5 8 2 5
"""

df.ix[2]
"""
0  9
1  7
2  1
Name: 2, dtype: int64
"""
# 提示信息
"""
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing
"""

# 如果 index 为整数, 则不能按行索引号进行索引
df.ix[0]
"""
...
KeyError: 0
"""

列索引

索引行有两种方法,分别是 . []

import pandas as pd
import numpy as np

columns = ["i", "ii", "iii"]
data = np.random.randint(10, size=(4, 3))
df = pd.DataFrame(data, columns=columns)

"""
  i ii iii 
0 4  5  9 
1 0  3  4 
2 7  9  1 
3 8  2  3 
"""

通过 . 属性直接获取指定行, 返回Series对象

df.i
"""
0  4
1  0
2  7
3  8
Name: i, dtype: int64
"""

 []

单列索引, 返回DataFrame对象

df[["i"]]
"""
  i
0 4
1 0
2 7
3 8
"""

多列索引, 返回DataFrame对象

df[["i", "ii"]]
"""
  i ii
0 4  5
1 0  3
2 7  9
3 8  2
"""

同时索引行及列

通过指定索引名或切片方式进行索引

index = ["a", "f", "c", "h"]
columns = ["i", "ii", "iii"]

df = pd.DataFrame(data, index=index, columns=columns)
"""
  i ii iii
a 4  5  9
f 0  3  4
c 7  9  1
h 8  2  3
"""

loc

通过指定行及列索引名进行索引, 返回DataFrame对象

df.loc[["a", "f"], ["ii", "iii"]]
"""
  ii iii
a  5  9
f  3  4
"""

通过指定行及列索引名范围进行索引(包含边值), 返回DataFrame对象

df.loc["a":"c", "ii":"iii"]
"""
  ii iii
a  5  9
f  3  4
c  9  1
"""

iloc

通过指定行及列索引号进行索引, 返回DataFrame对象

df.iloc[[0, 1], [1, 2]]
"""
  ii iii
a  5  9
f  3  4
"""

通过指定行及列索引号范围进行切片索引(左闭右开), 返回DataFrame对象

df.iloc[:3, 1:3]
"""
  ii iii
a  5  9
f  3  4
c  9  1
"""

ix(不建议使用)

通过指定行及列索引号范围或名字范围进行切片, 返回DataFrame对象

df.ix["a":"c", "i":"iii"]
df.ix["a":"c", 1:3]
df.ix[:3, 1:3]

tips: 只有使用 iloc 或 ix 按索引号进行切片索引时才为左闭右开, 其余全闭

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python操作mysql中文显示乱码的解决方法
Oct 11 Python
python中xrange用法分析
Apr 15 Python
python实现自动发送邮件
Jun 20 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
python matplotlib 画dataframe的时间序列图实例
Nov 20 Python
使用 Python 写一个简易的抽奖程序
Dec 08 Python
用Python开发app后端有优势吗
Jun 29 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 15 Python
django 模型字段设置默认值代码
Jul 15 Python
python读取excel数据并且画图的实现示例
Feb 08 Python
python 开心网和豆瓣日记爬取的小爬虫
May 29 Python
pandas时间序列之pd.to_datetime()的实现
Jun 16 Python
深入浅析Python中的迭代器
Jun 04 #Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
Jun 04 #Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 #Python
Python批量生成幻影坦克图片实例代码
Jun 04 #Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 #Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 #Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 #Python
You might like
Laravel日志用法详解
2016/10/09 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
javascript 对象的定义方法
2007/01/10 Javascript
Firefox window.close()的使用注意事项
2009/04/11 Javascript
Js(JavaScript)中,弹出是或否的选择框示例(confirm用法的实例分析)
2013/07/09 Javascript
js实现可拖动DIV的方法
2013/12/17 Javascript
javascript常用的正则表达式实例
2014/05/15 Javascript
jQuery中animate()方法用法实例
2014/12/24 Javascript
JQuery简单实现锚点链接的平滑滚动
2015/05/03 Javascript
简单讲解AngularJS的Routing路由的定义与使用
2016/03/05 Javascript
微信小程序学习(4)-系统配置app.json详解
2017/01/12 Javascript
百度地图JavascriptApi Marker平滑移动及车头指向行径方向
2017/03/13 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
nodejs动态创建二维码的方法
2017/08/12 NodeJs
vuex的简单使用教程
2018/02/02 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
vue读取本地的excel文件并显示在网页上方法示例
2019/05/29 Javascript
python网络编程之TCP通信实例和socketserver框架使用例子
2014/04/25 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
2018/05/08 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
python exit出错原因整理
2020/08/31 Python
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
现代化办公人员工作的自我评价
2013/10/16 职场文书
营销人才自我鉴定范文
2013/12/25 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
常务副总经理任命书
2014/06/05 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android