stack直译过来是堆叠,堆积,unstack是展开,解释为把列索引和行索引的互换,如下图所示,stack用于把列索引转换为行索引,而unstack用于把行索引转换为列索引。因此,可以把stack和unstack的功能解释为行索引和列索引的互换。 stack和unstack作用的对象是索引,pandas有多级索引(MultiIndex)结构,通过把列索引转换
type(df3) pandas.core.frame.DataFrame df3.index Index(['小明', '小红'], dtype='object') df3.columns MultiIndex([('information', 'sex'), ('information', 'weight')],) 看下stack之后的数据:二者比较 对比下原数据和生成的新数据:
df.columns = [['文科','文科','理科','理科'],['语文','英语','数学','物理']] df.columns.names=['文理','科目'] 生成的DataFrame在行和列方向都是MultiIndex: 文理 文科 理科 科目 语文 英语 数学 物理 班级 学生 1 张三 70 75 75 45 李四80 85 85 55 王五90 95 95 65 2 刘六 20 35 ...
多维索引也可以设置名称(names),属性的值为一维数组,元素的个数需要与索引的层数相同(每层索引都需要具有一个名称)。 1.2.第二种:MultiIndex 我们可以通过MultiIndex类的相关方法,预先创建一个MultiIndex对象,然后作为Series与DataFrame中的index(或columns)参数值。同时,可以通过names参数指定多层索引的名称。 from_arrays...
1,指定多维列表作为columns 2,使用pd.MultiIndex中的方法显式生成多层级索引 可以使用pd.MultiIndex中的from_tuples等方法生成多层级索引。 3,使用set_index方法将普通列转成多层级索引 这种方法只能生成多层级行索引。 4,groupby和pivot_table等方法也可以生成带有多层级索引的结果 ...
用MultiIndex编制索引 通过MultiIndex访问DataFrame的好处是,可以很容易地一次引用所有层次(可能会省略内部层次),而且语法很好,很熟悉。 Columns - 通过常规方括号 行和单元格--使用.loc[] 现在,如果想选择俄勒冈州的所有城市,或者只留下有人口的那一列怎么办?Python的语法在这里施加了两个限制: ...
columns=['first', 'second']) #然后使用 from_frame()创建分层索引。 index = pd.MultiIndex.from_frame(df) #将index应用于Series s=pd.Series(np.random.randn(4), index=index) print(s) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 输出结果: ...
多级索引:在一个轴上有多个(两个以上)的索引,能够以低维度形式来表示高维度的数据。单级索引是Index对象,多级索引是MultiIndex对象。 一、创建多级索引 方法一:隐式创建,即给DataFrame的index或columns参数传递两个或更多的数组。 df1 = pd.DataFrame(np.random.randint(80, 120, size=(2, 4)), ...
Python Pandas 中多层索引(MultiIndex)可以在 DataFrame 或 Series 中创建多个层次的标签。多层索引可以帮助我们更有效地组织和管理数据,并进行更复杂的分析。多层索引(也称为分层索引)提供了在一个轴上拥有多个(两个以上)索引级别的能力。这使得数据表示更加灵活,可以处理更复杂的数据形式。多层索引对于数据的分组、...
mcol = pd.MultiIndex.from_product([year,pro], names=['年份','专业']) #对df的行索引、列索引赋值 df.index = mindex df.columns = mcol display(df) 02 从数据中获取多级索引 第二种情况是我们既有数值数据又有维度数据,此时可以使用透视的方法比如pivot_table,stack,unstack来设置多层级索引。