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 29 Python
python将unicode转为str的方法
Jun 21 Python
python  创建一个保留重复值的列表的补码
Oct 15 Python
python取数作为临时极大值(极小值)的方法
Oct 15 Python
Python常见数据类型转换操作示例
May 08 Python
python简单区块链模拟详解
Jul 03 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
使用Python的datetime库处理时间(RPA流程)
Nov 24 Python
python多进程重复加载的解决方式
Dec 13 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
Python3爬虫中pyspider的安装步骤
Jul 29 Python
想学画画?python满足你!
Dec 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
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
PHP中session变量的销毁
2014/02/27 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
ES6模块化的import和export用法方法总结
2017/08/08 Javascript
学习Vue组件实例
2018/04/28 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
[19:24]DOTA2客户端使用指南 一分钟快速设置轻松超神
2013/09/24 DOTA
[50:05]VGJ.S vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python操作日期和时间的方法
2014/03/11 Python
Python collections模块实例讲解
2014/04/07 Python
python程序变成软件的实操方法
2019/06/24 Python
如何通过python实现人脸识别验证
2020/01/17 Python
Python3中FuzzyWuzzy库实例用法
2020/11/18 Python
python实现启动一个外部程序,并且不阻塞当前进程
2020/12/05 Python
java关于string最常出现的面试题整理
2021/01/18 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
竞选劳动委员演讲稿
2014/04/28 职场文书
孩子教育的心得体会
2014/09/01 职场文书
劳动仲裁代理词范文
2015/05/25 职场文书
OpenCV-Python实现图像平滑处理操作
2021/06/08 Python
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS