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字典排序实例详解
May 20 Python
Python操作Excel之xlsx文件
Mar 24 Python
分析python切片原理和方法
Dec 19 Python
Python创建普通菜单示例【基于win32ui模块】
May 09 Python
python绘制散点图并标记序号的方法
Dec 11 Python
使用Django连接Mysql数据库步骤
Jan 15 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 Python
Python读取YAML文件过程详解
Dec 30 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
Jan 06 Python
python ansible自动化运维工具执行流程
Jun 24 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
超神学院:鹤熙已踏入神圣领域,实力不比凯莎弱
2020/03/02 国漫
PHP 命名空间实例说明
2011/01/27 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
Javascript 生成指定范围数值随机数
2009/01/09 Javascript
js下用eval生成JSON对象
2010/09/17 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
jQuery制作效果超棒的手风琴折叠菜单
2015/04/03 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
jQuery右下角旋转环状菜单特效代码
2015/08/10 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
JavaScript关联数组用法分析【概念、定义、遍历】
2017/03/15 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
vue-devtools的安装和使用步骤详解
2019/10/17 Javascript
vue使用swiper.js重叠轮播组建样式
2019/11/14 Javascript
基于vue+echarts 数据可视化大屏展示的方法示例
2020/03/09 Javascript
JavaScript 绘制饼图的示例
2021/02/19 Javascript
[59:48]LGD vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
python使用Tesseract库识别验证
2018/03/21 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
Python最小二乘法矩阵
2019/01/02 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
基于html和CSS3制作酷炫的导航栏
2015/09/23 HTML / CSS
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
任意存:BOXFUL
2018/05/21 全球购物
GWT的应用有哪两种部署模式
2012/12/21 面试题
工作失误检讨书范文大全
2014/01/13 职场文书
2014年统计工作总结
2014/11/21 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL