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利用不到一百行代码实现一个小siri
Mar 02 Python
python如何重载模块实例解析
Jan 25 Python
利用python打开摄像头及颜色检测方法
Aug 03 Python
python进行文件对比的方法
Dec 24 Python
用python3 返回鼠标位置的实现方法(带界面)
Jul 05 Python
opencv3/C++图像像素操作详解
Dec 10 Python
TensorFlow——Checkpoint为模型添加检查点的实例
Jan 21 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
Python求两个字符串最长公共子序列代码实例
Mar 05 Python
python中setuptools的作用是什么
Jun 19 Python
python开发入门——列表生成式
Sep 03 Python
Python实现给PDF添加水印的方法
Jan 25 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
用PHP和ACCESS写聊天室(七)
2006/10/09 PHP
php生成局部唯一识别码LUID的代码
2012/10/06 PHP
解析centos中Apache、php、mysql 默认安装路径
2013/06/25 PHP
thinkPHP5.0框架独立配置与动态配置方法
2017/03/17 PHP
PHP 网站修改默认访问文件的nginx配置
2017/05/27 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
利用JS实现浏览器的title闪烁
2013/07/08 Javascript
jquery插件star-rating.js实现星级评分特效
2015/04/15 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
jQuery图片左右滚动代码 有左右按钮实例
2016/06/20 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
iview table render集成switch开关的实例
2018/03/14 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
原生JavaScript实现五子棋游戏
2020/11/09 Javascript
python中关于时间和日期函数的常用计算总结(time和datatime)
2013/03/08 Python
python实现指定字符串补全空格的方法
2015/04/30 Python
Python中的id()函数指的什么
2017/10/17 Python
Python使用gRPC传输协议教程
2018/10/16 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
Anaconda+vscode+pytorch环境搭建过程详解
2020/05/25 Python
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
NBA欧洲商店(英国):NBA Europe Store UK
2018/07/27 全球购物
物流仓管员岗位职责
2013/12/04 职场文书
医德医风自我评价
2014/09/19 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
关于flex 上下文中自动 margin的问题(完整例子)
2021/05/20 HTML / CSS
python+opencv实现视频抽帧示例代码
2021/06/11 Python