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)

pandas DataFrame(2)-行列索引及值的获取的更多相关文章

  1. 【pandas】pandas.DataFrame.rename()---重置索引名称

    官方文档 github地址 例子: 创建DataFrame ### 导入模块 import numpy as np import pandas as pd import matplotlib.pypl ...

  2. pandas DataFrame(1)

    之前介绍了numpy的二维数组,但是numpy二维数组有一些局限性,比如,它数组里所有的值的类型必须相同,不能某一列是数值型,某一列是字符串型,这样会导致无法使用 mean() , std() 等方法 ...

  3. pandas | 如何在DataFrame中通过索引高效获取数据?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引. 上一篇文章当中我们介绍了DataFrame数据结构当 ...

  4. pandas DataFrame的新增行列,修改、删除、筛选、判断元素以及转置操作

    1)指定行索引和列索引标签 index 属性可以指定 DataFrame 结构中的索引数组,  columns 属性可以指定包含列名称的行, 而使用 name 属性,通过对一个 DataFrame 实 ...

  5. pandas DataFrame 索引(iloc 与 loc 的区别)

    Pandas--ix vs loc vs iloc区别 0. DataFrame DataFrame 的构造主要依赖如下三个参数: data:表格数据: index:行索引: columns:列名: ...

  6. pandas.DataFrame学习系列1——定义及属性

    定义: DataFrame是二维的.大小可变的.成分混合的.具有标签化坐标轴(行和列)的表数据结构.基于行和列标签进行计算.可以被看作是为序列对象(Series)提供的类似字典的一个容器,是panda ...

  7. pandas.DataFrame的pivot()和unstack()实现行转列

    示例: 有如下表需要进行行转列: 代码如下: # -*- coding:utf-8 -*- import pandas as pd import MySQLdb from warnings impor ...

  8. pandas学习(创建多层索引、数据重塑与轴向旋转)

    pandas学习(创建多层索引.数据重塑与轴向旋转) 目录 创建多层索引 数据重塑与轴向旋转 创建多层索引 隐式构造 Series 最常见的方法是给DataFrame构造函数的index参数传递两个或 ...

  9. pandas DataFrame(4)-向量化运算

    pandas DataFrame进行向量化运算时,是根据行和列的索引值进行计算的,而不是行和列的位置: 1. 行和列索引一致: import pandas as pd df1 = pd.DataFra ...

随机推荐

  1. DP-hdu1260

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1260 题目描述: 题目大意:每一个人去电影票买票,有两种买票方法:1.自己单人买:2.与前面的人一起买 ...

  2. HDU 2844 Coins 【多重背包】(模板)

    <题目连接> 题目大意: 一位同学想要买手表,他有n种硬币,每种硬币已知有num[i]个.已知手表的价钱最多m元,问她用这些钱能够凑出多少种价格来买手表. 解题分析: 很明显,这是一道多重 ...

  3. window下mongodb安装和配置

    mongodb安装和配置 1.下载:https://www.mongodb.com 2.解压到盘的根目录下,本人解压到D盘根目录 3.在软件根目录下新建一个文件夹data 4.再新建两个文件夹db.l ...

  4. 【原创】ABP之IConventionalDependencyRegistra接口分析

    类图: 作用: abp中默认把对象的注册分为5中约定注册方式: 1.AbpAspNetCoreConventionalRegistrar public class AbpAspNetCoreConve ...

  5. [软件研究]对AMH面板的研究

    0x00 前言 继续研究,这次来看一下AMH面板,图截自官网 就让我们来看看这个多个"首个"的面板做的怎么样吧. 0x01 安装 官方提供了两种安装方式,一是极速安装,二是编译安装 ...

  6. VB 获取文件版本

    Function GetVer(FilePathName As String) As String If FilePathName = Nothing Or FilePathName = " ...

  7. UTF8编码的Base64解密 MSSQL实现

    GO CREATE FUNCTION [dbo].[c_GetUTF8Code] ( @char Nchar ) RETURNS int AS --UTF8转码 BEGIN Declare @Code ...

  8. JavaScript_几种创建对象(2017-07-04)

    理解对象 1.创建Object实例 var clock = new Object(); clock.hour = 12; clock.minute = 10; clock.showHour = fun ...

  9. SimpleDateFormat 格式化参数说明

    字母 日期或时间元素 表示 示例 G Era 标志符 Text AD y 年 Year 1996; 96 M 年中的月份 Month July; Jul; 07 w 年中的周数 Number 27 W ...

  10. linux上 安装软件

    一.rpm包安装方式步骤:  1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所 ...