首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据科学 IPython 笔记本 7.8 分层索引

我们以标准导入开始: import pandas as pd import numpy as np 多重索引的序列 让我们首先考虑如何在一维Series中表示二维数据。...作为额外维度的MultiIndex 你可能会注意到其他内容:我们可以使用带有索引和列标签的简单DataFrame,来轻松存储相同的数据。事实上,Pandas 的构建具有这种等价关系。...具体而言,我们可能希望,每年为每个州添加另一列人口统计数据(例如,18 岁以下的人口); 使用MultiIndex就像在DataFrame中添加另一列一样简单: pop_df = pd.DataFrame...列的MultiIndex 在DataFrame中,行和列是完全对称的,就像行可以有多个索引层次一样,列也可以有多个层次。...DataFrame中是主要的,并且用于多重索引的Series的语法适用于列。

4.3K20

Pandas图鉴(四):MultiIndex

MultiIndex 剖析 MultiIndex 对于没有听说过Pandas的人来说,MultiIndex最直接的用法是使用第二个索引列作为第一个索引列的补充,可以更加独特地识别每一行。...lock和locked在简单的情况下自动工作(如客户名称),但在更复杂的情况下需要用户的提示(如缺少日子的星期)。...将MultiIndex转换为flat的索引并将其恢复 方便的查询方法只解决了处理行中MultiIndex的复杂性。...如果你需要与其他生态系统的互操作性,请关注更多的标准格式,如Excel格式(在读取MultiIndex时需要与read_csv一样的提示)。下面是代码: !...一种方法是将所有不相关的列索引层层叠加到行索引中,进行必要的计算,然后再将它们解叠回来(使用pdi.lock来保持原来的列顺序)。

62120
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【数据处理包Pandas】多级索引的创建及使用

    二、引入多级索引 (一)多级索引的创建 MultiIndex 对象是 Pandas 标准 Index 的子类,由它来表示多层索引业务。...1、基于列索引选取数据 # 基于列的第1层索引选取单列 scores['富强'] # 基于列的第1层索引选取多列,需要使用花式索引 scores[['富强','王亮']] 补充说明: 排序时默认按第一个字符的...# 基于列的第2层索引选取多列 scores.loc[:,(slice(None),['语文','数学'])] 其中的花式索引['语文','数学']表示选取 level 1 级列索引是语文和数学的两列...(3)未指明的高级别行/列索引需要用slice(None)表示取任意值(例如#1处的第1级列索引);未指明的低级别索引可以不写(例如#1处的第2级行索引);如果同级别的索引有多个(例如#1处的第2级列索引...[:,(列索引)];或者进一步简化成df[列索引](即loc行选择器和表示元组的圆括号都可以省略,例如#3处) (2)当只涉及行索引元组并且其中不包含slice(None)时,列索引元组可以用冒号(:

    2100

    Pandas 2.2 中文官方教程和指南(十二·一)

    本质上,它使您能够在较低维数据结构(如Series(1d)和DataFrame(2d))中存储和操作具有任意数量维度的数据。..., dtype: float64 In [28]: s["qux"] Out[28]: one -1.039575 two 0.271860 dtype: float64 参见使用分层索引进行交叉选择以了解如何在更深层次上进行选择...与往常一样,切片器的两侧都包含在内,因为这是标签索引。 警告 在.loc指定器中应指定所有轴,即索引和列的索引器。...`的名称 `rename()`方法用于重命名`MultiIndex`的标签,通常用于重命名`DataFrame`的列。...特别是,可以指定 MultiIndex 级别的名称,如果稍后使用 reset_index() 将值从 MultiIndex 移动到列中,则这很有用。

    25510

    pandas(二)

    ] 常规创建   pop =pd.Series(age,index=index) MultiIndex创建   index= pd.MultiIndex.from_tuples(index)   pop...= pop.reindex(index)   最原先的索引重置为multiindex   pop[:,2010]  取出2010的所有数据 高维数据的多级索引:   pop_df = pop.unstack...()      本质是生成一个a-f为行索引,年份为列索引的矩阵,缺失值用nan   pop = pop_df.stack()   和unstack相反 多级索引创建:   直接将index参数设为二维...  pd.MultiIndex.from_arrays([['a','a','b','b'],[1,2,1,2]])   pd.MultiIndex.from_tuples([('a',1),('a'...,2),('b',1),('b',2)])   多级索引等级名称   pop.index.names=['name','year']  以前面例子来说给name是a一列的名称,year是2010一列的形成

    42410

    Pandas merge函数「建议收藏」

    必须在左侧和右侧DataFrame对象中找到。 如果未传递且left_index和right_index为False,则DataFrame中的列的交集将被推断为连接键。...left_on:左侧DataFrame中的列或索引级别用作键。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。...right_on: 左侧DataFrame中的列或索引级别用作键。 可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。...对于具有MultiIndex(分层)的DataFrame,级别数必须与右侧DataFrame中的连接键数相匹配。 right_index: 与left_index功能相似。...suffixes: 用于重叠列的字符串后缀元组。 默认为(‘x’,’ y’)。 copy: 始终从传递的DataFrame对象复制数据(默认为True),即使不需要重建索引也是如此。

    93020

    利用query()与eval()优化pandas代码

    本文就将带大家学习如何在pandas中化繁为简,利用query()和eval()来实现高效简洁的数据查询与运算。...除了对常规字段进行条件筛选,query()还支持对数据框自身的index进行条件筛选,具体可分为三种情况: 「常规index」 对于只具有单列Index的数据框,直接在表达式中使用index: # 找出索引列中包含...」 对于MultiIndex的情况,可分为两种,首先我们来看看MultiIndex的names为空的情况,按照顺序,用ilevel_n表示MultiIndex中的第n列index: # 构造含有MultiIndex...」 而对于MultiIndex的names有内容的情况,直接用对应的名称传入表达式即可: # 构造含有MultiIndex的数据框,并重置index的names为None temp = netflix.set_index...同样从实际例子出发,同样针对「netflix」数据,我们按照一定的计算方法为其新增两列数据,对基于assign()的方式和基于eval()的方式进行比较,其中最后一列是False是因为日期转换使用coerce

    1.5K30

    【原创佳作】介绍Pandas实战中一些高端玩法

    什么是多重/分层索引 多重/分层索引(MultiIndex)可以理解为堆叠的一种索引结构,它的存在为一些相当复杂的数据分析和操作打开了大门,尤其是在处理高纬度数据的时候就显得十分地便利,我们首先来创建带有多重索引的...DataFrame数据集 多重索引的创建 首先在“列”方向上创建多重索引,即我们在调用columns参数时传递两个或者更多的数组,代码如下 df1 = pd.DataFrame(np.random.randint...,分别是 pd.MultiIndex.from_arrays pd.MultiIndex.from_frame pd.MultiIndex.from_tuples pd.MultiIndex.from_product...,我们可以看到是“城市”以及“日期”这两个维度,而在“列”索引上,我们看到的是则是“不同时间段”以及一些“气温”等指标,首先来看一下“列”方向多重索引的层级,代码如下 df.columns.levels...pandas import IndexSlice as idx df.loc[ idx[: , '2019-07-04'], 'Day' ] output 我们同时可以指定行以及列方向上的索引来进行数据的提取

    69510

    (数据科学学习手札92)利用query()与eval()优化pandas代码

    本文就将带大家学习如何在pandas中化繁为简,利用query()和eval()来实现高效简洁的数据查询与运算。 ?...Index的数据框,直接在表达式中使用index: # 找出索引列中包含king的记录,忽略大小写 netflix.set_index('title').query("index.str.contains...图10 names为空的MultiIndex   对于MultiIndex的情况,可分为两种,首先我们来看看MultiIndex的names为空的情况,按照顺序,用ilevel_n表示MultiIndex...中的第n列index: # 构造含有MultiIndex的数据框,并重置index的names为None temp = netflix.set_index(['title', 'type']);temp.index.names...同样从实际例子出发,同样针对netflix数据,我们按照一定的计算方法为其新增两列数据,对基于assign()的方式和基于eval()的方式进行比较,其中最后一列是False是因为日期转换使用coerce

    1.7K20

    pandas系列6-重塑reshape

    重新排列表格型数据的基础运算称之为重塑reshape或者轴向旋转pivot stack:将数据的列旋转成行,AB由列属性变成行索引 unstack:将数据的行旋转成列,AB由行索引变成列属性 重点知识...层次化索引 MultiIndex 数据分散在不同的文件或者数据库中 层次化索引在⼀个轴上拥有多个(两个以上)索引级别 低维度形式处理高维度数据 import pandas as pd import numpy...res.unstack(0) # 实现了将行索引和列属性的位置互换 # res.unstack('state') 同上功能 state Inhio Colorado number...b 1 c 2 d 3 two c 4 d 5 e 6 dtype: int64 data1.unstack() # 行索引转成列属性...(tuples, names=['first', 'second']) # 错层次索引如何创建 # index = pd.MultiIndex.from_tuples(tuples, names=['

    71110

    Pandas merge用法解析(用Excel的数据为例子)

    Pandas merge用法解析(用Excel的数据为例子) 【知识点】 语法: 参数如下: left: 拼接的左侧DataFrame对象 right: 拼接的右侧DataFrame对象 on: 要加入的列或索引级别名称...必须在左侧和右侧DataFrame对象中找到。如果未传递且left_index和right_index为False,则DataFrame中的列的交集将被推断为连接键。...left_on:左侧DataFrame中的列或索引级别用作键。可以是列名,索引级名称,也可以是长度等于DataFrame长度的数组。 right_on: 左侧DataFrame中的列或索引级别用作键。...对于具有MultiIndex(分层)的DataFrame,级别数必须与右侧DataFrame中的连接键数相匹配。 right_index: 与left_index功能相似。...suffixes: 用于重叠列的字符串后缀元组。默认为(‘x’,’ y’)。 copy: 始终从传递的DataFrame对象复制数据(默认为True),即使不需要重建索引也是如此。

    1.7K20

    pandas学习-索引-task13

    参考链接: Pandas的布尔索引 一、索引器  表的列索引 列索引是最常见的索引形式,一般通过 [] 来实现。...表达式,其返回值也同样必须是先前提到的四种形式之一: df_demo.loc[lambda x:'Quan Zhao', lambda x:'Gender'] # 'Female' 由于函数无法返回如...与单层索引的表一样,具备元素值、行索引和列索引三个部分。其中,这里的行索引和列索引都是 MultiIndex 类型,只不过 索引中的一个元素是元组 而不是单层索引中的标量。...与单层索引类似, MultiIndex 也具有名字属性,图中的 School 和 Gender 分别对应了表的第一层和第二层行索引的名字, Indicator 和 Grade 分别对应了第一层和第二层列索引的名字...,后一个是列索引。

    92300

    最全面的Pandas的教程!没有之一!

    多级索引(MultiIndex)以及命名索引的不同等级 多级索引其实就是一个由元组(Tuple)组成的数组,每一个元组都是独一无二的。...你可以从一个包含许多数组的列表中创建多级索引(调用 MultiIndex.from_arrays ),也可以用一个包含许多元组的数组(调用 MultiIndex.from_tuples )或者是用一对可迭代对象的集合...(比如两个列表,互相两两配对)来构建(调用MultiIndex.from_product )。...index 表示按该列进行分组索引,而 columns 则表示最后结果将按该列的数据进行分列。...你可以在 Pandas 的官方文档 中找到更多数据透视表的详细用法和例子。 于是,我们按上面的语法,给这个动物统计表创建一个数据透视表: ? 或者也可以直接调用 df 对象的方法: ?

    26K64
    领券