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实现爬取知乎神回复简单爬虫代码分享
Jan 04 Python
Python中的is和id用法分析
Jan 26 Python
python冒泡排序简单实现方法
Jul 09 Python
Python设计实现的计算器功能完整实例
Aug 18 Python
Python从零开始创建区块链
Mar 06 Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 Python
浅谈PYTHON 关于文件的操作
Mar 19 Python
PyTorch基本数据类型(一)
May 22 Python
numpy中的ndarray方法和属性详解
May 27 Python
Python之修改图片像素值的方法
Jul 03 Python
python3中sys.argv的实例用法
Apr 24 Python
Python实现一个简单的递归下降分析器
Aug 01 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
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
在Win7 中为php扩展配置Xcache
2014/10/08 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
PHP上传文件参考配置大文件上传
2015/12/16 PHP
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
JavaScript判断文件上传类型的方法
2014/09/02 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
vue中实现滚动加载更多的示例
2017/11/08 Javascript
jQuery实现鼠标点击处心形漂浮的炫酷效果示例
2018/04/12 jQuery
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
深入理解vue中的slot与slot-scope
2019/04/22 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
Python压缩和解压缩zip文件
2015/02/14 Python
使用Python进行二进制文件读写的简单方法(推荐)
2016/09/12 Python
Python多线程扫描端口代码示例
2018/02/09 Python
使用Python实现一个栈判断括号是否平衡
2018/08/23 Python
对python中大文件的导入与导出方法详解
2018/12/28 Python
Python pandas用法最全整理
2019/08/04 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
树莓派安装OpenCV3完整过程的实现
2019/10/10 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
AmazeUI 网格的实现示例
2020/08/13 HTML / CSS
电子商务专业毕业生工作推荐信
2013/11/17 职场文书
报到证丢失证明
2014/01/11 职场文书
学生爱国演讲稿
2014/01/14 职场文书
给同学的道歉信
2014/01/16 职场文书
行政办公室岗位职责
2014/03/18 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
新闻稿格式范文
2015/07/18 职场文书
java解析XML详解
2021/07/09 Java/Android
聊聊CSS粘性定位sticky案例解析
2022/06/01 HTML / CSS