目录
一、用法精讲
976、pandas.MultiIndex.set_codes方法
976-1、语法
976-2、参数
976-3、功能
976-4、返回值
976-5、说明
976-6、用法
976-6-1、数据准备
976-6-2、代码示例
976-6-3、结果输出
977、pandas.MultiIndex.to_frame方法
977-1、语法
977-2、参数
977-3、功能
977-4、返回值
977-5、说明
977-6、用法
977-6-1、数据准备
977-6-2、代码示例
977-6-3、结果输出
978、pandas.MultiIndex.to_flat_index方法
978-1、语法
978-2、参数
978-3、功能
978-4、返回值
978-5、说明
978-6、用法
978-6-1、数据准备
978-6-2、代码示例
978-6-3、结果输出
979、pandas.MultiIndex.sortlevel方法
979-1、语法
979-2、参数
979-3、功能
979-4、返回值
979-5、说明
979-6、用法
979-6-1、数据准备
979-6-2、代码示例
979-6-3、结果输出
980、pandas.MultiIndex.droplevel方法
980-1、语法
980-2、参数
980-3、功能
980-4、返回值
980-5、说明
980-6、用法
980-6-1、数据准备
980-6-2、代码示例
980-6-3、结果输出
二、推荐阅读
1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
一、用法精讲
976、pandas.MultiIndex.set_codes方法
976-1、语法
# 976、pandas.MultiIndex.set_codes方法
pandas.MultiIndex.set_codes(codes, *, level=None, verify_integrity=True)
Set new codes on MultiIndex. Defaults to returning new index.Parameters:
codes
sequence or list of sequence
New codes to apply.level
int, level name, or sequence of int/level names (default None)
Level(s) to set (None for all levels).verify_integrity
bool, default True
If True, checks that levels and codes are compatible.Returns:
new index (of same type and class…etc) or None
The same type as the caller or None if inplace=True.
976-2、参数
976-2-1、codes(必需):表示包含新代码的整数数组或数组的列表,每个数组中的整数表示特定级别的新代码,数组的长度必须与MultiIndex的长度相同。
976-2-2、level(可选,默认值为None):整数、整数列表或级别名称,指定要更新的级别,如果未提供,则默认为所有级别。
976-2-3、verify_integrity(可选,默认值为True):布尔值,如果为True,则在更新代码后验证MultiIndex的完整性,如果为False,则跳过验证步骤。
976-3、功能
用于更新MultiIndex对象的级别代码,而不改变级别名称和级别数,允许你在不改变索引结构的情况下,灵活地更新索引内容。
976-4、返回值
该方法会原地更新MultiIndex对象,不会返回新对象,因此,返回值为None。
976-5、说明
无
976-6、用法
976-6-1、数据准备
无
976-6-2、代码示例
# 976、pandas.MultiIndex.set_codes方法
import pandas as pd
# 创建一个MultiIndex对象
arrays = [[1, 2, 3], ['red', 'green', 'blue']]
index = pd.MultiIndex.from_arrays(arrays, names=('number', 'color'))
print("原始MultiIndex:")
print(index)
# 使用set_codes更新级别代码
new_codes = [[0, 1, 2], [2, 1, 0]]
index.set_codes(new_codes, level=[0, 1], verify_integrity=False)
print("更新后的MultiIndex:")
print(index)
976-6-3、结果输出
# 976、pandas.MultiIndex.set_codes方法
# 原始MultiIndex:
# MultiIndex([(1, 'red'),
# (2, 'green'),
# (3, 'blue')],
# names=['number', 'color'])
# 更新后的MultiIndex:
# MultiIndex([(1, 'red'),
# (2, 'green'),
# (3, 'blue')],
# names=['number', 'color'])
977、pandas.MultiIndex.to_frame方法
977-1、语法
# 977、pandas.MultiIndex.to_frame方法
pandas.MultiIndex.to_frame(index=True, name=_NoDefault.no_default, allow_duplicates=False)
Create a DataFrame with the levels of the MultiIndex as columns.Column ordering is determined by the DataFrame constructor with data as a dict.Parameters:
indexbool, default True
Set the index of the returned DataFrame as the original MultiIndex.namelist / sequence of str, optional
The passed names should substitute index level names.allow_duplicatesbool, optional default False
Allow duplicate column labels to be created.New in version 1.5.0.Returns:
DataFrame
977-2、参数
977-2-1、index(可选,默认值为True):布尔值,如果设置为True,则将MultiIndex作为DataFrame 的索引;如果设置为False,则将MultiIndex作为DataFrame的列。
977-2-2、name(可选):array-like,用于指定生成的DataFrame列的名称,如果设置为None,则使用MultiIndex的层级名称。
977-2-3、allow_duplicates(可选,默认值为False):布尔值,如果设置为True,则允许MultiIndex中存在重复的名称;如果设置为False,则不允许重复的名称。
977-3、功能
将多层次索引(MultiIndex)转换为一个DataFrame,转换后的DataFrame可以更方便地进行数据操作和分析。
977-4、返回值
返回一个DataFrame,其中包含MultiIndex的内容,如果index参数设置为True,则DataFrame的索引将与原始MultiIndex相同;如果设置为False,则DataFrame的列将包含MultiIndex的内容。
977-5、说明
无
977-6、用法
977-6-1、数据准备
无
977-6-2、代码示例
# 977、pandas.MultiIndex.to_frame方法
import pandas as pd
arrays = [['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']
]
index = pd.MultiIndex.from_arrays(arrays, names=('first', 'second'))
df = pd.DataFrame({'A': [1, 2, 3, 4, 5, 6, 7, 8]}, index=index)
print(df)
df_index = index.to_frame(index=False, name=['level_1', 'level_2'])
print(df_index)
977-6-3、结果输出
# 977、pandas.MultiIndex.to_frame方法
# A
# first second
# bar one 1
# two 2
# baz one 3
# two 4
# foo one 5
# two 6
# qux one 7
# two 8
# level_1 level_2
# 0 bar one
# 1 bar two
# 2 baz one
# 3 baz two
# 4 foo one
# 5 foo two
# 6 qux one
# 7 qux two
978、pandas.MultiIndex.to_flat_index方法
978-1、语法
# 978、pandas.MultiIndex.to_flat_index方法
pandas.MultiIndex.to_flat_index()
Convert a MultiIndex to an Index of Tuples containing the level values.Returns:
pd.Index
Index with the MultiIndex data represented in Tuples.
978-2、参数
无
978-3、功能
将MultiIndex转换为一个扁平的Index对象。
978-4、返回值
一个新的Index对象,其中MultiIndex的各个层次的值被连接在一起,形成了一个新的Index。
978-5、说明
无
978-6、用法
978-6-1、数据准备
无
978-6-2、代码示例
# 978、pandas.MultiIndex.to_flat_index方法
import pandas as pd
# 创建一个MultiIndex对象
multi_index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2)])
# 将MultiIndex转换为扁平的Index对象
flat_index = multi_index.to_flat_index()
print(flat_index)
978-6-3、结果输出
# 978、pandas.MultiIndex.to_flat_index方法
# Index([('A', 1), ('A', 2), ('B', 1), ('B', 2)], dtype='object')
979、pandas.MultiIndex.sortlevel方法
979-1、语法
# 979、pandas.MultiIndex.sortlevel方法
pandas.MultiIndex.sortlevel(level=0, ascending=True, sort_remaining=True, na_position='first')
Sort MultiIndex at the requested level.The result will respect the original ordering of the associated factor at that level.Parameters:
levellist-like, int or str, default 0
If a string is given, must be a name of the level. If list-like must be names or ints of levels.ascendingbool, default True
False to sort in descending order. Can also be a list to specify a directed ordering.sort_remainingsort by the remaining levels after level
na_position{‘first’ or ‘last’}, default ‘first’
Argument ‘first’ puts NaNs at the beginning, ‘last’ puts NaNs at the end.New in version 2.1.0.Returns:
sorted_index
pd.MultiIndex
Resulting index.indexer
np.ndarray[np.intp]
Indices of output values in original index.
979-2、参数
979-2-1、level(可选,默认值为0):表示需要排序的级别,可以是整数或者级别名称。
979-2-2、ascending(可选,默认值为True):排序顺序,True为升序,False为降序。
979-2-3、sort_remaining(可选,默认值为True):是否对其他级别进行排序。
979-2-4、na_position(可选,默认值为'first'):缺失值的位置,可以是'first'或'last'。
979-3、功能
对MultiIndex的指定级别进行排序,排序后,其他级别的顺序保持不变。
979-4、返回值
返回一个新的MultiIndex对象,包含排序后的索引,原来的MultiIndex对象保持不变。
979-5、说明
无
979-6、用法
979-6-1、数据准备
无
979-6-2、代码示例
# 979、pandas.MultiIndex.sortlevel方法
import pandas as pd
# 创建一个MultiIndex
arrays = [['foo', 'bar', 'foo', 'bar','foo', 'bar', 'foo', 'foo'],['one', 'one', 'two', 'three','two', 'two', 'one', 'three'],['small', 'large', 'large', 'large','small', 'small', 'large', 'small']]
index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second', 'third'])
# 打印原始的MultiIndex
print("原始MultiIndex:")
print(index)
# 对'second'级别进行升序排序
index_sorted = index.sortlevel(level=1, ascending=True)
# 打印排序后的MultiIndex
print("\n排序后的MultiIndex:")
print(index_sorted)
979-6-3、结果输出
# 979、pandas.MultiIndex.sortlevel方法
# 原始MultiIndex:
# MultiIndex([('foo', 'one', 'small'),
# ('bar', 'one', 'large'),
# ('foo', 'two', 'large'),
# ('bar', 'three', 'large'),
# ('foo', 'two', 'small'),
# ('bar', 'two', 'small'),
# ('foo', 'one', 'large'),
# ('foo', 'three', 'small')],
# names=['first', 'second', 'third'])
#
# 排序后的MultiIndex:
# (MultiIndex([('bar', 'one', 'large'),
# ('foo', 'one', 'large'),
# ('foo', 'one', 'small'),
# ('bar', 'three', 'large'),
# ('foo', 'three', 'small'),
# ('bar', 'two', 'small'),
# ('foo', 'two', 'large'),
# ('foo', 'two', 'small')],
# names=['first', 'second', 'third']), array([1, 6, 0, 3, 7, 5, 2, 4], dtype=int64))
980、pandas.MultiIndex.droplevel方法
980-1、语法
# 980、pandas.MultiIndex.droplevel方法
pandas.MultiIndex.droplevel(level=0)
Return index with requested level(s) removed.If resulting index has only 1 level left, the result will be of Index type, not MultiIndex. The original index is not modified inplace.Parameters:
level
int, str, or list-like, default 0
If a string is given, must be the name of a level If list-like, elements must be names or indexes of levels.Returns:
Index or MultiIndex
980-2、参数
980-2-1、level(可选,默认值为0):可以接受以下类型的参数:
- int或int列表:表示要删除的索引级别的位置(从0开始计数)
- str或str列表:表示要删除的索引级别的名称
980-3、功能
从多级索引(MultiIndex)中删除指定级别的索引,可以移除一个或多个索引级别。
980-4、返回值
返回一个新的Index或MultiIndex对象,如果删除后只剩一个级别,返回普通的Index;如果还有多个级别,返回新的MultiIndex。
980-5、说明
无
980-6、用法
980-6-1、数据准备
无
980-6-2、代码示例
# 980、pandas.MultiIndex.droplevel方法
import pandas as pd
# 创建多级索引
arrays = [['A', 'A', 'B', 'B'], [1, 2, 1, 2]]
index = pd.MultiIndex.from_arrays(arrays, names=['first', 'second'])
# 删除第一级索引
new_index = index.droplevel(0)
print(new_index)
# 通过名称删除索引
new_index = index.droplevel('first')
print(new_index)
# 删除多个级别
multi_level = pd.MultiIndex.from_arrays([['A', 'A', 'B', 'B'],[1, 2, 1, 2],['x', 'y', 'x', 'y']])
new_multi = multi_level.droplevel([0, 2])
print(new_multi)
980-6-3、结果输出
# 980、pandas.MultiIndex.droplevel方法
# Index([1, 2, 1, 2], dtype='int64', name='second')
# Index([1, 2, 1, 2], dtype='int64', name='second')
# Index([1, 2, 1, 2], dtype='int64')