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

Pandas图鉴(四):MultiIndex

MultiIndex 剖析 MultiIndex 对于没有听说过Pandas的人来说,MultiIndex最直接用法是使用第二个索引列作为第一个索引补充,可以更加独特地识别每一。...这个方法无法同时过滤,所以名字xs(代表 "cross-section")背后原因并不完全清楚。它不能用于设置。...这意味着你不能用它来实现df[:, 'population'],而不需要置DataFrame(除非所有都是相同类型,否则会丢失类型)。...将MultiIndex换为flat索引并将其恢复 方便查询方法只解决了处理MultiIndex复杂性。...一种方法是将所有不相关索引层层叠加到索引中,进行必要计算,然后再将它们解叠回来(使用pdi.lock来保持原来顺序)。

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

掌握这些 NumPy & Pandas 方法,快速提升数据处理效率!

切片与索引 获取单个元素 >>> a[2] # 选择第二个索引元素 3 >>> b[1,2] # 选择第1第2元素(相当于b[1][2]) 1.5 2 3 6.0 456 获取子集...>>> a[0:2] # 选择索引0和1项 array([1, 2]) >>> b[0:2,1] # 选择第1中第0和第1项目 array([ 2., 5.]) >>> b[:1] #...Stack: 将数据索引换为索引(索引可以简单理解为列名) Unstack: 将数据索引换为索引 >>> stacked = df5.stack() >>> stacked.unstack...col_level : 如果MultiIndex,则使用此级别。 宽数据--->>长数据,有点像用excel做透视跟逆透视过程。...索引选择 >>> df[(df.Country.isin(df2.Type))] # 找到相同元素 >>> df3.filter(items=["a","b"]) # 过滤 >>> df.select

4.9K20

数据处理利器pandas入门

这里还要注意一点:由于type对应了不同空气质量要素,而不同空气质量要素具有不同取值范围,因此在使用describe查看统计信息时,应针对不同要素进行,这样才有具体意义,才能看出每个要素分布...# data.loc[0:5, '1001A':'1005A] # 会出错 ⚠️ 由于索引已经转换为时间,因此此处不能使用 整数 索引。...: .apply 上面在创建时间索引时便利用了.apply 方法,对date 和 hour分别进行了数据类型转换,然后将两个字符串进行了连接,转换为时间。...索引切片: 可以理解成 idx 将 MultiIndex 视为一个新 DataFrame,然后将上层索引视为,下层索引视为,以此来进行数据查询。...上述操作返回仍然是 MultiIndex,因为此时只有一个站点了,我们可以使用 .xs 方法将MultiIndex换为Index。

3.6K30

Pandas 重置索引深度总结

如果我们使用 Pandas read_csv() 方法读取 csv 文件而不指定任何索引,则生成 DataFrame 将具有默认基于整数索引,第一从 0 开始,随后每行增加 1: import...DataFrame 索引,并将旧索引换为与旧索引同名(或名称索引)。...() 方法将 DataFrame 索引重置为默认数字索引,在以下情况下特别有用: 执行数据整理时——尤其是过滤数据或删除缺失等预处理操作,会导致较小 DataFrame 具有不再连续数字索引索引应该被视为一个常见...DataFrame ,而索引被重置为默认基于整数索引 相反,如果我们显式传递 level ,则此参数会从 DataFrame 索引中删除选定级别,并将它们作为常见 DataFrame 返回...,但是由于我们没有显式传递 drop 参数,旧索引被转换为具有默认名称 index,下面让我们从 DataFrame 中完全删除旧索引: df.reset_index(drop=True) Output

1.3K40

进阶法宝!掌握这些 NumPy & Pandas 方法,快速提升数据处理效率

切片与索引 获取单个元素 >>> a[2] # 选择第二个索引元素 3 >>> b[1,2] # 选择第1第2元素(相当于b[1][2]) 1.5 2 3 6.0 456 获取子集...>>> a[0:2] # 选择索引0和1项 array([1, 2]) >>> b[0:2,1] # 选择第1中第0和第1项目 array([ 2., 5.]) >>> b[:1] #...Stack: 将数据索引换为索引(索引可以简单理解为列名) Unstack: 将数据索引换为索引 >>> stacked = df5.stack() >>> stacked.unstack...col_level : 如果MultiIndex,则使用此级别。 宽数据--->>长数据,有点像用excel做透视跟逆透视过程。...索引选择 >>> df[(df.Country.isin(df2.Type))] # 找到相同元素 >>> df3.filter(items=["a","b"]) # 过滤 >>> df.select

3.7K20

pandas学习-索引-task13

,根据条件来筛选是极其常见,此处传入 loc 布尔列表与 DataFrame 长度相同,且列表为 True 位置所对应行会被选中, False 则会被剔除。...,必须以前面的四种合法形式之一为返回,并且函数输入为 DataFrame 本身。...与单层索引表一样,具备元素索引索引三个部分。其中,这里索引索引都是 MultiIndex 类型,只不过 索引一个元素是元组 而不是单层索引标量。...例如,索引第四个元素为 ("B", "Male") ,索引第二个元素为 ("Height", "Senior") ,这里需要注意,外层连续出现相同时,第一次之后出现会被隐藏显示,使结果可读性增强...与单层索引类似, MultiIndex具有名字属性,图中 School 和 Gender 分别对应了表第一层和第二层索引名字, Indicator 和 Grade 分别对应了第一层和第二层索引名字

87600

pandas多级索引骚操作!

比如,下面这个数据是高考录取分数线,索引是地区、学校,索引是年份、专业,分别对应1级和2级索引,因此共有四个维度。 1、多层级索引创建 多级索引创建分两种情况。...# 数组 # 每个数组对应着一个层级索引 arrays = [['北京','北京','上海','上海'],['北大','清华','上交','复旦']] mindex = pd.MultiIndex.from_arrays...= pd.MultiIndex.from_frame(frame, names=['城市','大学']) # 给df索引赋值 df.index = mindex 通过以上三种方式均可为数据添加行索引...这种方式生成索引和我们上面想要形式不同,因此对索引不适用,但是我们发现索引column目前还没指定,此时是默认1,2,3,4,进一步发现这里索引是符合笛卡尔积形式,因此我们用from_product...set_index(['城市','大学','专业','年份']).unstack().unstack() 以上两种方式结果相同,均可从原数据中抽取列维度数据并设置为行列多级索引

88630

业界使用最多Python中Dataframe重塑变形

pivot pivot函数用于从给定表中创建出新派生表 pivot有三个参数: 索引 def pivot_simple(index, columns, values): """...columns values : ndarray Values to use for populating new frame's values pivot函数将创建一个新表,其索引是相应参数唯一...因此,必须确保我们指定没有重复数据,才可以用pivot函数 pivot_table方法实现了类似pivot方法功能 它可以在指定有重复情况下使用 我们可以使用均值、中值或其他聚合函数来计算重复条目中单个...,它允许在数据集中聚合具有相同目标的多个。...堆叠DataFrame意味着移动最里面的索引成为最里面的索引,反向操作称之为取消堆叠,意味着将最里面的索引移动为最里面的索引

1.9K10

数据导入与预处理-第6章-02数据变换

等宽法 等宽法将属性值域从最小到最大划分成具有相同宽度区间,具体划分多少个区间由数据本身特点决定,或者由具有业务经验用户指定 等频法 等频法将相同数量划分到每个区间,保证每个区间数量基本一致...基于重塑数据(生成一个“透视”表)。使用来自指定索引/唯一来形成结果DataFrame轴。此函数不支持数据聚合,多个将导致MultiIndex。...,商品一唯一数据变换为索引: # 将出售日期一唯一数据变换为索引,商品一唯一数据变换为索引 new_df = df_obj.pivot(index='出售日期', columns='商品名称...',values='价格(元)') new_df 输出为: 2.2.2 melt方法 melt()是pivot()逆操作方法,用于将DataFrame类对象索引换为数据。...示例代码如下: 查看初始数据 new_df 输出为: # 将索引换为数据: # 将索引换为数据 new_df.melt(value_name='价格(元)', ignore_index

19.2K20

Pandas知识点-DataFrame数据结构介绍

DataFrame数据结构构成 DataFrame数据是Pandas中基本数据结构,同时具有索引(index)和索引(columns),看起来与Excel表格相似。 ?...设置某一索引 上面的DataFrame数据中,索引是0~4725整数,假如要设置日期为索引,可以使用set_index()方法设置。...将日期设置为索引后,“日期”这一数据变成了索引,数据中就不再有日期了。可见,set_index()移动了位置,从数据移动到了索引(但没有删除数据)。...设置多重索引MultiIndex 使用set_index()设置索引时可以同时设置多个列为索引。...可以看到,当同时设置“日期”和“股票代码”为索引后,打印行索引结果是MultiIndex(多重索引),而前面打印原始数据索引为Index。

2.3K40

pandas系列11-cutstackmelt

pandas系列10-数值操作2 本文是书《对比Excel,轻松学习Python数据分析》第二篇,主要内容包含 区间切分 插入数据(索引重塑 长宽表转换 区间切分 Excel Excel...Python pandas中置只需要调用.T方法即可 ? 索引重塑 所谓索引重塑就是将原来索引重新进行构造。两种常见表示数据结构: 表格型 树形 下面?...是表格型示意图,通过一个坐标和坐标来确定一个数据 ? 下面?是树形结构示意图:将原来表格型索引也变成了索引,其实就是给表格型数据建立层次化索引 ?...在转换过程中,宽表和长表中必须要有相同。比如将下图宽表转成长表 宽表: ? 长表: ? 实现过程 stack方法 ? ?...company和name是索引 Year是属性 Sale是

3.4K10

Pandas图鉴(三):DataFrames

为了使其发挥作用,这两个DataFrame需要有(大致)相同。这与NumPy中vstack类似,你如下图所示: 在索引中出现重复是不好,会遇到各种各样问题。...通过MultiIndex进行堆叠 如果标签都重合,concat可以做一个相当于垂直堆叠MultiIndex(像NumPydstack): 如果和/或部分重叠,Pandas将相应地对齐名称...注意:要小心,如果第二个表有重复索引,你会在结果中出现重复索引,即使左表索引是唯一 有时,连接DataFrame有相同名称。...要将其转换为宽格式,请使用df.pivot: 这条命令抛弃了与操作无关东西(即索引和价格),并将所要求信息转换为长格式,将客户名称放入结果索引中,将产品名称放入其中,将销售数量放入其 "...它将索引合并到MultiIndex中: eset_index 如果你想只stack某些,你可以使用melt: 请注意,熔体以不同方式排列结果

35720

数据分析索引总结(下)Pandas索引技巧

(index=list(df.index)[::5]) 为index传入参数可以不是df原始index中---这将引入缺失构成,还可以传入重复索引。...由于df_temp中没有1105这个索引,因此会引入缺失。...df_temp1.rename_axis(index={'Upper':'UPPER'}) rename方法用于修改或者索引标签,而不是索引名 给index传入字典,键是原来索引, 是新索引...无需指定要修改索引级别,会自动寻找索引相应----当不同层级索引相同时候,这会造成混乱。...df_t.rename(index={'A':'T'},level=1,columns={'E':'changed_e'},level=0).head() # 显然不能同时指定两个level 一个问题:如果不同层级索引索引相同时候

2.7K20
领券