Python酷库之旅-第三方库Pandas(211)

目录

一、用法精讲

986、pandas.MultiIndex.get_loc方法

986-1、语法

986-2、参数

986-3、功能

986-4、返回值

986-5、说明

986-6、用法

986-6-1、数据准备

986-6-2、代码示例

986-6-3、结果输出

987、pandas.MultiIndex.get_locs方法

987-1、语法

987-2、参数

987-3、功能

987-4、返回值

987-5、说明

987-6、用法

987-6-1、数据准备

987-6-2、代码示例

987-6-3、结果输出

988、pandas.MultiIndex.get_loc_level方法

988-1、语法

988-2、参数

988-3、功能

988-4、返回值

988-5、说明

988-6、用法

988-6-1、数据准备

988-6-2、代码示例

988-6-3、结果输出

989、pandas.MultiIndex.drop方法

989-1、语法

989-2、参数

989-3、功能

989-4、返回值

989-5、说明

989-6、用法

989-6-1、数据准备

989-6-2、代码示例

989-6-3、结果输出

990、pandas.MultiIndex.copy方法

990-1、语法

990-2、参数

990-3、功能

990-4、返回值

990-5、说明

990-6、用法

990-6-1、数据准备

990-6-2、代码示例

990-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

986、pandas.MultiIndex.get_loc方法
986-1、语法
python 复制代码
# 986、pandas.MultiIndex.get_loc方法
pandas.MultiIndex.get_loc(key)
Get location for a label or a tuple of labels.

The location is returned as an integer/slice or boolean mask.

Parameters:
key
label or tuple of labels (one for each level)
Returns:
int, slice object or boolean mask
If the key is past the lexsort depth, the return may be a boolean mask array, otherwise it is always a slice or int.
986-2、参数

986-2-1、key**(必需)****:**表示要查找的键,可以是单个值或一个元组,如果是单个值,表示查找该值在MultiIndex中的位置;如果是元组,表示查找对应的多级索引。

986-3、功能

返回给定键在MultiIndex中的位置,它可以用于快速定位多级索引中的特定项,通常在数据选择和切片操作中非常有用。

986-4、返回值

返回值是一个整数或切片对象,表示给定键在MultiIndex中的位置,如果找到该键,返回其对应的整数位置;如果是元组,返回一个切片对象,表示该键在多级索引中的范围;如果未找到该键,则会引发KeyError异常。

986-5、说明

986-6、用法
986-6-1、数据准备
python 复制代码
986-6-2、代码示例
python 复制代码
# 986、pandas.MultiIndex.get_loc方法
import pandas as pd
# 创建一个MultiIndex
arrays = [
    ['A', 'A', 'B', 'B'],
    [1, 2, 1, 2]
]
index = pd.MultiIndex.from_arrays(arrays, names=('letter', 'number'))
# 使用get_loc查找位置
loc_A1 = index.get_loc(('A', 1))
loc_B2 = index.get_loc(('B', 2))
print(loc_A1)
print(loc_B2)
986-6-3、结果输出
python 复制代码
# 986、pandas.MultiIndex.get_loc方法
# 0
# 3
987、pandas.MultiIndex.get_locs方法
987-1、语法
python 复制代码
# 987、pandas.MultiIndex.get_locs方法
pandas.MultiIndex.get_locs(seq)
Get location for a sequence of labels.

Parameters:
seq
label, slice, list, mask or a sequence of such
You should use one of the above for each level. If a level should not be used, set it to slice(None).

Returns:
numpy.ndarray
NumPy array of integers suitable for passing to iloc.
987-2、参数

987-2-1、seq**(必需)****:**一个元组或元组列表,用于定位多级索引的位置。

987-3、功能

根据给定的元组或元组序列查找对应的索引位置,返回与输入元组匹配的行的整数索引位置,支持部分匹配和精确匹配多级索引。

987-4、返回值

返回一个NumPy数组,包含匹配的行索引位置,如果没有匹配,则返回空数组。

987-5、说明

987-6、用法
987-6-1、数据准备
python 复制代码
987-6-2、代码示例
python 复制代码
# 987、pandas.MultiIndex.get_locs方法
import pandas as pd
mi = pd.MultiIndex.from_arrays([list('abb'), list('def')])
data = mi.get_locs('b')
print(data)
987-6-3、结果输出
python 复制代码
# 987、pandas.MultiIndex.get_locs方法
# [1 2]
988、pandas.MultiIndex.get_loc_level方法
988-1、语法
python 复制代码
# 988、pandas.MultiIndex.get_loc_level方法
pandas.MultiIndex.get_loc_level(key, level=0, drop_level=True)
Get location and sliced index for requested label(s)/level(s).

Parameters:
key
label or sequence of labels
level
int/level name or list thereof, optional
drop_level
bool, default True
If False, the resulting index will not drop any level.

Returns:
tuple
A 2-tuple where the elements :

Element 0: int, slice object or boolean array.

Element 1: The resulting sliced multiindex/index. If the key contains all levels, this will be None.
988-2、参数

988-2-1、key**(必需)****:**表示要查找的键,可以是单个值或一个值的元组,具体取决于索引的层数。

988-2-2、level**(可选,默认值为0)****:**整数或字符串,指定要查找的层级,可以使用层级的整数索引(从0开始)或层级名称。

988-2-3、drop_level**(可选,默认值为True)****:**布尔值,指定是否在返回结果中删除所查找的层级,如果为True,则返回的结果中不包含该层级;如果为False,则返回的结果中包含该层级。

988-3、功能

用于在多重索引(MultiIndex)中查找特定键的位置。

988-4、返回值

返回一个元组,包含两个元素:

**988-4-1、loc:**int或slice,指定键在索引中的位置或切片。

**988-4-2、indexer:**ndarray,指定键在该层级中的索引位置。

988-5、说明

988-6、用法
988-6-1、数据准备
python 复制代码
988-6-2、代码示例
python 复制代码
# 988、pandas.MultiIndex.get_loc_level方法
import pandas as pd
# 创建一个多重索引
arrays = [
    ['A', 'A', 'B', 'B'],
    [1, 2, 1, 2]
]
index = pd.MultiIndex.from_arrays(arrays, names=('letter', 'number'))
# 使用get_loc_level方法
loc, indexer = index.get_loc_level(('A', 1), level=0)
print(loc)
print(indexer)
988-6-3、结果输出
python 复制代码
# 988、pandas.MultiIndex.get_loc_level方法
# 0
# None
989、pandas.MultiIndex.drop方法
989-1、语法
python 复制代码
# 989、pandas.MultiIndex.drop方法
pandas.MultiIndex.drop(codes, level=None, errors='raise')
Make a new pandas.MultiIndex with the passed list of codes deleted.

Parameters:
codes
array-like
Must be a list of tuples when level is not specified.

level
int or level name, default None
errors
str, default 'raise'
Returns:
MultiIndex
989-2、参数

989-2-1、codes**(必需)****:**单个值或列表,表示要删除的索引代码,可以是单个代码,也可以是代码的列表。

989-2-2、level**(可选,默认值为None)****:**整数或字符串,指定要删除代码的级别,如果为None,则在所有级别中查找并删除指定的代码;如果指定了级别,则仅在该级别中查找并删除。

989-2-3、errors**(可选,默认值为'raise')****:**字符串,指定在找不到要删除的代码时的行为,可选值为:

  • **'​​​​​​​raise​​​​​​​':**如果找不到指定的代码,则引发错误。
  • ​​​​​​​'ignore​​​​​​​': 如果找不到指定的代码,则不执行任何操作。
989-3、功能

从MultiIndex中删除指定的索引代码,允许用户根据需要选择特定的级别进行删除。

989-4、返回值

返回一个新的MultiIndex对象,其中已删除指定的索引代码,原始的MultiIndex不会被修改。

989-5、说明

989-6、用法
989-6-1、数据准备
python 复制代码
989-6-2、代码示例
python 复制代码
# 989、pandas.MultiIndex.drop方法
import pandas as pd
# 创建一个MultiIndex
arrays = [
    ['A', 'A', 'B', 'B'],
    [1, 2, 1, 2]
]
index = pd.MultiIndex.from_arrays(arrays, names=('letters', 'numbers'))
# 删除代码
new_index = index.drop(codes=1, level='numbers')
print(new_index)
989-6-3、结果输出
python 复制代码
# 989、pandas.MultiIndex.drop方法
# MultiIndex([('A', 2),
#             ('B', 2)],
#            names=['letters', 'numbers'])
990、pandas.MultiIndex.copy方法
990-1、语法
python 复制代码
# 990、pandas.MultiIndex.copy方法
pandas.MultiIndex.copy(names=None, deep=False, name=None)
Make a copy of this object.

Names, dtype, levels and codes can be passed and will be set on new copy.

Parameters:
names
sequence, optional
deep
bool, default False
name
Label
Kept for compatibility with 1-dimensional Index. Should not be used.

Returns:
MultiIndex
Notes

In most cases, there should be no functional difference from using deep, but if deep is passed it will attempt to deepcopy. This could be potentially expensive on large MultiIndex objects.
990-2、参数

990-2-1、names**(可选,默认值为None)****:**用于指定新的索引名称列表,如果为None,则保留原索引名称。

990-2-2、deep**(可选,默认值为False)****:**布尔值,控制拷贝的深度:

  • **False:**浅拷贝,只复制索引对象的引用
  • **True:**深拷贝,完全复制索引对象及其数据

990-2-3、name**(可选,默认值为None)****:**设置新索引的名称。

990-3、功能

创建MultiIndex的一个副本,可以选择性地修改索引名称。

990-4、返回值

返回一个新的MultiIndex对象。

990-5、说明

990-6、用法
990-6-1、数据准备
python 复制代码
990-6-2、代码示例
python 复制代码
# 990、pandas.MultiIndex.copy方法
import pandas as pd
# 创建原MultiIndex
mi = pd.MultiIndex.from_arrays([[1,2],[3,4]], names=['a', 'b'])
# 浅拷贝
mi_copy1 = mi.copy()
# 深拷贝并修改名称
mi_copy2 = mi.copy(names=['x', 'y'], deep=True)
print(mi_copy1)
print(mi_copy2)
990-6-3、结果输出
python 复制代码
# 990、pandas.MultiIndex.copy方法
# MultiIndex([(1, 3),
#             (2, 4)],
#            names=['a', 'b'])
# MultiIndex([(1, 3),
#             (2, 4)],
#            names=['x', 'y'])

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
相关推荐
沐雪架构师12 分钟前
AI大模型开发原理篇-2:语言模型雏形之词袋模型
人工智能·语言模型·自然语言处理
python算法(魔法师版)1 小时前
深度学习深度解析:从基础到前沿
人工智能·深度学习
小王子10241 小时前
设计模式Python版 组合模式
python·设计模式·组合模式
kakaZhui1 小时前
【llm对话系统】大模型源码分析之 LLaMA 位置编码 RoPE
人工智能·深度学习·chatgpt·aigc·llama
来恩10032 小时前
C# 类与对象详解
开发语言·c#
struggle20252 小时前
一个开源 GenBI AI 本地代理(确保本地数据安全),使数据驱动型团队能够与其数据进行互动,生成文本到 SQL、图表、电子表格、报告和 BI
人工智能·深度学习·目标检测·语言模型·自然语言处理·数据挖掘·集成学习
佛州小李哥2 小时前
通过亚马逊云科技Bedrock打造自定义AI智能体Agent(上)
人工智能·科技·ai·语言模型·云计算·aws·亚马逊云科技
komo莫莫da2 小时前
寒假刷题Day19
java·开发语言
ElseWhereR3 小时前
C++ 写一个简单的加减法计算器
开发语言·c++·算法
Mason Lin3 小时前
2025年1月22日(网络编程 udp)
网络·python·udp