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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
python通过ssh-powershell监控windows的方法
Jun 02 Python
Python及PyCharm下载与安装教程
Nov 18 Python
聊聊Python中的pypy
Jan 12 Python
在pycharm 中添加运行参数的操作方法
Jan 19 Python
python 多线程重启方法
Feb 18 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
Aug 02 Python
Pytorch转onnx、torchscript方式
May 25 Python
tensorflow实现残差网络方式(mnist数据集)
May 26 Python
Python 操作SQLite数据库的示例
Oct 16 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 Python
paramiko使用tail实时获取服务器的日志输出详解
Dec 06 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实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
2009/11/12 Javascript
jquery 注意事项与常用语法小结
2010/06/07 Javascript
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
Web表单提交之disabled问题js解决方法
2015/01/13 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
JavaScript实现添加、查找、删除元素
2015/07/02 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
2016/05/03 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
javascript跳转与返回和刷新页面的实例代码
2019/11/20 Javascript
python中实现定制类的特殊方法总结
2014/09/28 Python
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
python实现简单温度转换的方法
2015/03/13 Python
在Python的Bottle框架中使用微信API的示例
2015/04/23 Python
python批量赋值操作实例
2018/10/22 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
2019/01/22 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
python 使用paramiko模块进行封装,远程操作linux主机的示例代码
2020/12/03 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
意大利自行车商店:Cingolani Bike Shop
2019/09/03 全球购物
竞聘书格式及范文
2014/03/31 职场文书
教师演讲稿开场白
2014/08/25 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
宾馆安全管理制度
2015/08/06 职场文书
课改心得体会范文
2016/01/25 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
oracle连接ODBC sqlserver数据源的详细步骤
2021/07/25 Oracle
vue实现书本翻页动画效果实例详解
2022/04/08 Vue.js