pandas DataFrame 行列索引及值的获取的方法


Posted in Python onJuly 02, 2019

pandas DataFrame是二维的,所以,它既有列索引,又有行索引

上一篇里只介绍了列索引:

import pandas as pd

df = pd.DataFrame({'A': [0, 1, 2], 'B': [3, 4, 5]})
print df

# 结果:
  A B
0 0 3
1 1 4
2 2 5

行索引自动生成了 0,1,2

如果要自己指定行索引和列索引,可以使用 index 和 column 参数:

这个数据是5个车站10天内的客流数据:

ridership_df = pd.DataFrame(
  data=[[  0,  0,  2,  5,  0],
     [1478, 3877, 3674, 2328, 2539],
     [1613, 4088, 3991, 6461, 2691],
     [1560, 3392, 3826, 4787, 2613],
     [1608, 4802, 3932, 4477, 2705],
     [1576, 3933, 3909, 4979, 2685],
     [ 95, 229, 255, 496, 201],
     [  2,  0,  1,  27,  0],
     [1438, 3785, 3589, 4174, 2215],
     [1342, 4043, 4009, 4665, 3033]],
  index=['05-01-11', '05-02-11', '05-03-11', '05-04-11', '05-05-11',
      '05-06-11', '05-07-11', '05-08-11', '05-09-11', '05-10-11'],
  columns=['R003', 'R004', 'R005', 'R006', 'R007']
)

data 参数为一个numpy二维数组,  index 参数为行索引, column 参数为列索引

生成的数据以表格形式显示:

R003 R004 R005 R006 R007
05-01-11   0   0   2   5   0
05-02-11 1478 3877 3674 2328 2539
05-03-11 1613 4088 3991 6461 2691
05-04-11 1560 3392 3826 4787 2613
05-05-11 1608 4802 3932 4477 2705
05-06-11 1576 3933 3909 4979 2685
05-07-11  95  229  255  496  201
05-08-11   2   0   1  27   0
05-09-11 1438 3785 3589 4174 2215
05-10-11 1342 4043 4009 4665 3033

下面说下如何获取DataFrame里的值:

1.获取某一列: 直接 ['key']

print(ridership_df['R003'])

# 结果:
05-01-11    0
05-02-11  1478
05-03-11  1613
05-04-11  1560
05-05-11  1608
05-06-11  1576
05-07-11   95
05-08-11    2
05-09-11  1438
05-10-11  1342
Name: R003, dtype: int64

2.获取某一行:  .loc['key']

print(ridership_df.loc['05-01-11'])
# 或者
print(ridership_df.iloc[0])


# 结果:
R003  0
R004  0
R005  2
R006  5
R007  0
Name: 05-01-11, dtype: int64

3.获取某一行某一列的某个值:

print(ridership_df.loc['05-05-11','R003'])
# 或者
print(ridership_df.iloc[4,0])

# 结果:
1608

4.获取原始的numpy二维数组:

print(ridership_df.values)

# 结果:
[[  0  0  2  5  0]
 [1478 3877 3674 2328 2539]
 [1613 4088 3991 6461 2691]
 [1560 3392 3826 4787 2613]
 [1608 4802 3932 4477 2705]
 [1576 3933 3909 4979 2685]
 [ 95 229 255 496 201]
 [  2  0  1  27  0]
 [1438 3785 3589 4174 2215]
 [1342 4043 4009 4665 3033]]

*注意在这过程中,数据格式如果不一致,会发生转换.

一个综合栗子:

从 ridership_df 找出第一天里客流量最多的车站,然后返回这个车站的日平均客流,以及返回所有车站的平均日客流,作为对比:

def mean_riders_for_max_station(ridership):
  max_index = ridership.iloc[0].argmax()
  mean_for_max = ridership[max_index].mean()
  overall_mean = ridership.values.mean()
  return (overall_mean, mean_for_max)

print mean_riders_for_max_station(ridership_df)

# 结果:
(2342.6, 3239.9)

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

Python 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
Python 获取中文字拼音首个字母的方法
Nov 28 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
python中对数据进行各种排序的方法
Jul 02 Python
jupyter note 实现将数据保存为word
Apr 14 Python
python操作toml文件的示例代码
Nov 27 Python
浅谈Selenium 控制浏览器的常用方法
Dec 04 Python
python 实现图片批量压缩的示例
Dec 18 Python
Python与C/C++的相互调用案例
Mar 04 Python
python for和else语句趣谈
Jul 02 #Python
python交互模式下输入换行/输入多行命令的方法
Jul 02 #Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 #Python
python格式化输出保留2位小数的实现方法
Jul 02 #Python
Python 获取ftp服务器文件时间的方法
Jul 02 #Python
简单了解Python生成器是什么
Jul 02 #Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 #Python
You might like
PHP 引用是个坏习惯
2010/03/12 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
JavaScript OOP面向对象介绍
2010/12/02 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
2013/06/05 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
前端面试题及答案整理(二)
2016/08/26 Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
2016/11/01 Javascript
关于Function中的bind()示例详解
2016/12/02 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
JS中DOM元素的attribute与property属性示例详解
2018/09/04 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
[02:45]DOTA2英雄基础教程 伐木机
2013/12/23 DOTA
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
python实现的多线程端口扫描功能示例
2017/01/21 Python
基于python实现聊天室程序
2018/07/27 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
Lands’ End官网:经典的美国生活方式品牌
2016/08/14 全球购物
英国最大的纸工艺品商店:CraftStash
2018/12/01 全球购物
俄罗斯GamePark游戏商店网站:购买游戏、游戏机和配件
2020/03/13 全球购物
活动总结范文
2014/08/30 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
小平您好观后感
2015/06/09 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis