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进阶教程之循环对象
Aug 30 Python
简单分析Python中用fork()函数生成的子进程
May 04 Python
Python计算一个文件里字数的方法
Jun 15 Python
Python正则获取、过滤或者替换HTML标签的方法
Jan 28 Python
学习python 之编写简单乘法运算题
Feb 27 Python
django轻松使用富文本编辑器CKEditor的方法
Mar 30 Python
分分钟入门python语言
Mar 20 Python
python调用xlsxwriter创建xlsx的方法
May 03 Python
python将字符串list写入excel和txt的实例
Jul 20 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
Dec 04 Python
python图形开发GUI库pyqt5的详细使用方法及各控件的属性与方法
Feb 14 Python
详解OpenCV获取高动态范围(HDR)成像
Apr 29 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使用mkdir创建多级目录入门例子
2014/05/10 PHP
php自动识别文件编码并转换为UTF-8的方法
2014/06/12 PHP
ThinkPHP使用smarty模板引擎的方法
2014/07/01 PHP
thinkphp中ajax与php响应过程详解
2014/12/08 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
javascript计算用户打开网页的停留时间
2014/01/09 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
原生JS实现-星级评分系统的简单实例
2016/08/21 Javascript
JavaScript函数参数的传递方式详解
2017/03/06 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
详解Chai.js断言库API中文文档
2018/01/31 Javascript
vue.extend实现alert模态框弹窗组件
2018/04/28 Javascript
vue-cli配置flexible过程详解
2019/07/04 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
[42:20]Secret vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
Python延时操作实现方法示例
2018/08/14 Python
使用python将mysql数据库的数据转换为json数据的方法
2019/07/01 Python
Python二元算术运算常用方法解析
2020/09/15 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
演讲稿格式
2014/04/30 职场文书
交通文明倡议书
2014/05/16 职场文书
教师研修随笔感言
2015/11/18 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
导游词之藏龙百瀑景区
2019/12/30 职场文书
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android