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、博客个人主页
相关推荐
梦幻精灵_cq2 分钟前
Python中“暂停”(time.sleep?input?)
python
武子康4 分钟前
Java-08 深入浅出 MyBatis - 多对多模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据库·sql·mybatis
摇滚侠11 分钟前
java http body的格式 ‌application/x-www-form-urlencoded‌不支持文件上传
java·开发语言·http
檀越剑指大厂21 分钟前
【Python系列】 Base64 编码:使用`base64`模块
开发语言·python
誓约酱25 分钟前
(动画)Qt控件 QLCDNumer
开发语言·c++·git·qt·编辑器
夫琅禾费米线26 分钟前
leetcode2650. 设计可取消函数 generator和Promise
开发语言·javascript·leetcode·ecmascript
sp_fyf_202428 分钟前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-05
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
小火炉Q31 分钟前
02 python基础 python解释器安装
人工智能·python·神经网络·机器学习·网络安全·自然语言处理
@小博的博客36 分钟前
C++初阶学习第十三弹——容器适配器和优先级队列的概念
开发语言·数据结构·c++·学习
钰见梵星39 分钟前
深度学习优化算法
人工智能·深度学习·算法