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 相关文章推荐
python实现自动更换ip的方法
May 05 Python
Python正则表达式实现截取成对括号的方法
Jan 06 Python
python打造爬虫代理池过程解析
Aug 15 Python
对Django中的权限和分组管理实例讲解
Aug 16 Python
python+opencv边缘提取与各函数参数解析
Mar 09 Python
python中get和post有什么区别
Jun 19 Python
python调用私有属性的方法总结
Jul 24 Python
Python中猜拳游戏与猜筛子游戏的实现方法
Sep 04 Python
Python实现冒泡排序算法的完整实例
Nov 04 Python
python实现企业微信定时发送文本消息的实例代码
Nov 25 Python
使用Python画了一棵圣诞树的实例代码
Nov 27 Python
解决pytorch 的state_dict()拷贝问题
Mar 03 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数组及条件,循环语句学习
2012/11/11 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
php微信公众号开发之答题连闯三关
2018/10/20 PHP
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
python提取页面内url列表的方法
2015/05/25 Python
python常用知识梳理(必看篇)
2017/03/23 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
2017/10/11 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
django2用iframe标签完成网页内嵌播放b站视频功能
2018/06/20 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
Django文件存储 默认存储系统解析
2019/08/02 Python
Python实现链表反转的方法分析【迭代法与递归法】
2020/02/22 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
为有想象力的人提供的生活方式商店:Firebox
2018/06/04 全球购物
数字漫画:comiXology
2020/06/13 全球购物
UNIX文件名称有什么规定
2013/03/25 面试题
公司董事长职责
2013/12/12 职场文书
入学申请自荐信范文
2014/02/26 职场文书
环保建议书100字
2014/05/14 职场文书
刑事撤诉申请书
2015/05/18 职场文书
趣味运动会加油词
2015/07/18 职场文书
opencv读取视频并保存图像的方法
2021/06/04 Python
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL