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

news2024/11/23 11:43:41

目录

一、用法精讲

231、pandas.Series.reorder_levels方法

231-1、语法

231-2、参数

231-3、功能

231-4、返回值

231-5、说明

231-6、用法

231-6-1、数据准备

231-6-2、代码示例

231-6-3、结果输出

232、pandas.Series.sort_values方法

232-1、语法

232-2、参数

232-3、功能

232-4、返回值

232-5、说明

232-6、用法

232-6-1、数据准备

232-6-2、代码示例

232-6-3、结果输出

233、pandas.Series.sort_index方法

233-1、语法

233-2、参数

233-3、功能

233-4、返回值

233-5、说明

233-6、用法

233-6-1、数据准备

233-6-2、代码示例

233-6-3、结果输出

234、pandas.Series.swaplevel方法

234-1、语法

234-2、参数

234-3、功能

234-4、返回值

234-5、说明

234-6、用法

234-6-1、数据准备

234-6-2、代码示例

234-6-3、结果输出

235、pandas.Series.unstack方法

235-1、语法

235-2、参数

235-3、功能

235-4、返回值

235-5、说明

235-6、用法

235-6-1、数据准备

235-6-2、代码示例

235-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

231、pandas.Series.reorder_levels方法
231-1、语法
# 231、pandas.Series.reorder_levels方法
pandas.Series.reorder_levels(order)
Rearrange index levels using input order.

May not drop or duplicate levels.

Parameters:
order
list of int representing new level order
Reference level by number or key.

Returns:
type of caller (new object)
231-2、参数

231-2-1、order(必须)指定重新排序索引的顺序,它应该是一个列表或元组,包含索引级别的顺序,级别的索引可以通过名称或位置来指定。如果提供的顺序不包含所有的级别,reorder_levels方法会将缺少的级别保持不变。

231-3、功能

        允许你根据指定的顺序重新排序Series的多级索引,这对于调整数据的组织结构很有用,尤其是在进行数据透视或汇总时。

231-4、返回值

        返回一个新的Series对象,其中的索引按照指定的顺序重新排序。

231-5、说明

        无

231-6、用法
231-6-1、数据准备
231-6-2、代码示例
# 231、pandas.Series.reorder_levels方法
import pandas as pd
# 创建一个具有多级索引的Series
index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2)], names=['letter', 'number'])
s = pd.Series([10, 20, 30, 40], index=index)
# 重新排序索引
s_reordered = s.reorder_levels(['number', 'letter'])
print(s_reordered)
231-6-3、结果输出
# 231、pandas.Series.reorder_levels方法
# number  letter
# 1       A         10
# 2       A         20
# 1       B         30
# 2       B         40
# dtype: int64
232、pandas.Series.sort_values方法
232-1、语法
# 232、pandas.Series.sort_values方法
pandas.Series.sort_values(*, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last', ignore_index=False, key=None)
Sort by the values.

Sort a Series in ascending or descending order by some criterion.

Parameters:
axis
{0 or ‘index’}
Unused. Parameter needed for compatibility with DataFrame.

ascending
bool or list of bools, default True
If True, sort values in ascending order, otherwise descending.

inplace
bool, default False
If True, perform operation in-place.

kind
{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, default ‘quicksort’
Choice of sorting algorithm. See also numpy.sort() for more information. ‘mergesort’ and ‘stable’ are the only stable algorithms.

na_position
{‘first’ or ‘last’}, default ‘last’
Argument ‘first’ puts NaNs at the beginning, ‘last’ puts NaNs at the end.

ignore_index
bool, default False
If True, the resulting axis will be labeled 0, 1, …, n - 1.

key
callable, optional
If not None, apply the key function to the series values before sorting. This is similar to the key argument in the builtin sorted() function, with the notable difference that this key function should be vectorized. It should expect a Series and return an array-like.

Returns:
Series or None
Series ordered by values or None if inplace=True.
232-2、参数

232-2-1、axis(可选,默认值为0)指定排序的轴,对于Series对象,这个参数默认为0,即沿着数据的索引进行排序。

232-2-2、ascending(可选,默认值为True)指定排序的顺序,True表示升序(默认),False表示降序。如果提供的是一个布尔列表,它必须与Series的索引长度相同,且会对不同的排序级别进行不同的排序。

232-2-3、inplace(可选,默认值为False)是否在原地进行排序,True表示在原地排序并修改原始对象,False(默认)表示返回排序后的新对象。

232-2-4、kind(可选,默认值为'quicksort')排序算法类:'quicksort'、'mergesort'和'heapsort',任选其一。

232-2-5、na_position(可选,默认值为'last')NaN值的位置,可选值有'first'(默认)和'last',指定NaN值在排序后的结果中的位置。

232-2-6、ignore_index(可选,默认值为False)排序后是否重新生成索引,False(默认)表示保留原索引,True表示生成新的连续索引。

232-2-7、key(可选,默认值为None)函数,用于在排序前对数据进行转换,该函数会作用于每个数据值,然后基于转换后的值进行排序。

232-3、功能

        用于对Series对象的值进行排序,该方法支持多种排序选项,并可以根据需要进行配置。

232-4、返回值

        返回一个新的Series对象,其中的值按照指定的排序顺序排列,如果inplace=True,则对原对象进行修改,不返回新对象。

232-5、说明

        无

232-6、用法
232-6-1、数据准备
232-6-2、代码示例
# 232、pandas.Series.sort_values方法
import pandas as pd
# 创建一个Series对象
s = pd.Series([3, 6, 5, 11, 10, 8, 10, 24])
# 对Series进行升序排序
s_sorted = s.sort_values()
print(s_sorted, end='\n\n')
s_sorted = s.sort_values(ignore_index=True)
print(s_sorted)
232-6-3、结果输出
# 232、pandas.Series.sort_values方法
# 0     3
# 2     5
# 1     6
# 5     8
# 4    10
# 6    10
# 3    11
# 7    24
# dtype: int64
#
# 0     3
# 1     5
# 2     6
# 3     8
# 4    10
# 5    10
# 6    11
# 7    24
233、pandas.Series.sort_index方法
233-1、语法
# 233、pandas.Series.sort_index方法
pandas.Series.sort_index(*, axis=0, level=None, ascending=True, inplace=False, kind='quicksort', na_position='last', sort_remaining=True, ignore_index=False, key=None)
Sort Series by index labels.

Returns a new Series sorted by label if inplace argument is False, otherwise updates the original series and returns None.

Parameters:
axis
{0 or ‘index’}
Unused. Parameter needed for compatibility with DataFrame.

level
int, optional
If not None, sort on values in specified index level(s).

ascending
bool or list-like of bools, default True
Sort ascending vs. descending. When the index is a MultiIndex the sort direction can be controlled for each level individually.

inplace
bool, default False
If True, perform operation in-place.

kind
{‘quicksort’, ‘mergesort’, ‘heapsort’, ‘stable’}, default ‘quicksort’
Choice of sorting algorithm. See also numpy.sort() for more information. ‘mergesort’ and ‘stable’ are the only stable algorithms. For DataFrames, this option is only applied when sorting on a single column or label.

na_position
{‘first’, ‘last’}, default ‘last’
If ‘first’ puts NaNs at the beginning, ‘last’ puts NaNs at the end. Not implemented for MultiIndex.

sort_remaining
bool, default True
If True and sorting by level and index is multilevel, sort by other levels too (in order) after sorting by specified level.

ignore_index
bool, default False
If True, the resulting axis will be labeled 0, 1, …, n - 1.

key
callable, optional
If not None, apply the key function to the index values before sorting. This is similar to the key argument in the builtin sorted() function, with the notable difference that this key function should be vectorized. It should expect an Index and return an Index of the same shape.

Returns:
Series or None
The original Series sorted by the labels or None if inplace=True.
233-2、参数

233-2-1、axis(可选,默认值为0)指定排序的轴,对于Series对象,通常设置为0,表示对索引进行排序。

233-2-2、level(可选,默认值为None)对多级索引(MultiIndex)进行排序时,指定排序的级别,可以是单个级别或级别的列表。

233-2-3、ascending(可选,默认值为True)指定排序的顺序,True表示升序(默认);False表示降序,如果提供的是一个布尔列表,它必须与索引的级别数相同。

233-2-4、inplace(可选,默认值为False)是否在原地进行排序,True表示在原地排序并修改原始对象,False(默认)表示返回排序后的新对象。

233-2-5、kind(可选,默认值为'quicksort')排序算法类:'quicksort'、'mergesort'和'heapsort',任选其一。

233-2-6、na_position(可选,默认值为'last')NaN值的位置,可选值有'first'(默认)和'last',指定NaN值在排序后的结果中的位置。

233-2-7、sort_remaining(可选,默认值为True)在MultiIndex中,是否对剩余的级别进行排序。True(默认)表示对所有级别进行排序;False表示仅对指定的级别排序。

233-2-8、ignore_index(可选,默认值为False)排序后是否重新生成索引,False(默认)表示保留原索引,True表示生成新的连续索引。

233-2-9、key(可选,默认值为None)函数,用于在排序前对索引进行转换,该函数会作用于每个索引值,然后基于转换后的值进行排序。

233-3、功能

        用于对Series对象的索引进行排序,它对索引进行排序而不是对数据值排序。

233-4、返回值

        返回一个新的Series对象,其中的索引按照指定的排序顺序排列,如果inplace=True,则对原对象进行修改,不返回新对象。

233-5、说明

        无

233-6、用法
233-6-1、数据准备
233-6-2、代码示例
# 233、pandas.Series.sort_index方法
import pandas as pd
# 创建一个Series对象
s = pd.Series([3, 1, 2, 5, 4], index=['b', 'a', 'c', 'e', 'd'])
# 对索引进行升序排序
s_sorted = s.sort_index()
print(s_sorted, end='\n\n')
s_sorted = s.sort_index(ignore_index=True)
print(s_sorted)
233-6-3、结果输出
# 233、pandas.Series.sort_index方法
# a    1
# b    3
# c    2
# d    4
# e    5
# dtype: int64
#
# 0    1
# 1    3
# 2    2
# 3    4
# 4    5
# dtype: int64
234、pandas.Series.swaplevel方法
234-1、语法
# 234、pandas.Series.swaplevel方法
pandas.Series.swaplevel(i=-2, j=-1, copy=None)
Swap levels i and j in a MultiIndex.

Default is to swap the two innermost levels of the index.

Parameters:
i, jint or str
Levels of the indices to be swapped. Can pass level name as string.

copybool, default True
Whether to copy underlying data.

Note

The copy keyword will change behavior in pandas 3.0. Copy-on-Write will be enabled by default, which means that all methods with a copy keyword will use a lazy copy mechanism to defer the copy and ignore the copy keyword. The copy keyword will be removed in a future version of pandas.

You can already get the future behavior and improvements through enabling copy on write pd.options.mode.copy_on_write = True

Returns:
Series
Series with levels swapped in MultiIndex.
234-2、参数

234-2-1、i(可选,默认值为-2)整数或字符串,表示要交换的第一个级别的标签或级别的索引位置。

234-2-2、j(可选,默认值为-1)整数或字符串,表示要交换的第二个级别的标签或级别的索引位置。

234-2-3、copy(可选,默认值为None)是否在交换级别时复制数据,True表示复制,False表示不复制,如果设为None,则取决于MultiIndex的具体情况。

234-3、功能

        用于交换Series对象中的多级索引(MultiIndex)的级别,该方法允许在MultiIndex中调换两个级别的位置。

234-4、返回值

        返回一个新的Series对象,其中指定的级别已被交换,如果copy=False,则可能对原对象进行修改(具体取决于索引的实现)。

234-5、说明

        无

234-6、用法
234-6-1、数据准备
234-6-2、代码示例
# 234、pandas.Series.swaplevel方法
import pandas as pd
# 创建一个MultiIndex的Series对象
index = pd.MultiIndex.from_tuples([('A', 1), ('A', 2), ('B', 1), ('B', 2)], names=['letter', 'number'])
s = pd.Series([10, 20, 30, 40], index=index)
# 打印原始Series
print("Original Series:")
print(s)
# 交换'letter'和'number'两个级别
s_swapped = s.swaplevel(i='letter', j='number')
print("\nSeries after swapping levels:")
print(s_swapped)
234-6-3、结果输出
# 234、pandas.Series.swaplevel方法
# Original Series:
# letter  number
# A       1         10
#         2         20
# B       1         30
#         2         40
# dtype: int64
#
# Series after swapping levels:
# number  letter
# 1       A         10
# 2       A         20
# 1       B         30
# 2       B         40
# dtype: int64
235、pandas.Series.unstack方法
235-1、语法
# 235、pandas.Series.unstack方法
pandas.Series.unstack(level=-1, fill_value=None, sort=True)
Unstack, also known as pivot, Series with MultiIndex to produce DataFrame.

Parameters:
level
int, str, or list of these, default last level
Level(s) to unstack, can pass level name.

fill_value
scalar value, default None
Value to use when replacing NaN values.

sort
bool, default True
Sort the level(s) in the resulting MultiIndex columns.

Returns:
DataFrame
Unstacked Series.
235-2、参数

235-2-1、level(可选,默认值为-1)要转换为列的层级,默认值是-1,表示最后一个层级。如果Series是多层级的,level参数允许你选择要转换的层级,可以是单个整数、整数列表或层级名称(对于DataFrame)。

235-2-2、fill_value(可选,默认值为None)在转换过程中用于填充缺失值的值,默认是None,即不进行填充,如果你指定了一个值,那么在转换过程中,所有缺失的数据点将被填充为这个值。

235-2-3、sort(可选,默认值为True)是否对新生成的列进行排序,默认值是True,表示排序。如果设置为False,则保持原来的顺序,这对于保持数据的原始顺序很有用,尤其是在数据按照特定方式排序时。

235-3、功能

        将Series对象的指定层级的索引转换为DataFrame的列,这有助于将数据从长格式(即多级索引的Series)转换为宽格式(即普通的DataFrame),使数据更容易进行分析和操作。

235-4、返回值

        返回一个DataFrame,其中被转换为列的层级的索引现在成为DataFrame的列,原始的索引层级将被保留,或根据指定的层级被处理。

235-5、说明

        无

235-6、用法
235-6-1、数据准备
235-6-2、代码示例
# 235、pandas.Series.unstack方法
import pandas as pd
data = pd.Series([1, 2, 3, 4], index=[['New York', 'New York', 'Los Angeles', 'Los Angeles'], ['2023-01-01', '2023-01-02', '2023-01-01', '2023-01-02']])
print(data, end='\n\n')
df = data.unstack(level=-1)
print(df)
235-6-3、结果输出
# 235、pandas.Series.unstack方法
# New York     2023-01-01    1
#              2023-01-02    2
# Los Angeles  2023-01-01    3
#              2023-01-02    4
# dtype: int64
#
#              2023-01-01  2023-01-02
# Los Angeles           3           4
# New York              1           2

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1970076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flink-StarRocks详解:第三部分StarRocks分区分桶(第53天)

文章目录 前言2.3 数据分布2.3.1 数据分布概览2.3.1.1 常见的数据分布方式2.3.1.2 StarRocks的数据分布方式2.3.1.3 分区2.3.1.4 分桶 2.3.2 创建分区2.3.2.1 表达式分区2.3.2.1.1 时间函数表达式分区(自v3.1)2.3.2.1.2 列表达式分区(自v3.1&…

EAK水冷电阻60kW负载制动电阻器

描述 EAK制动电阻器 液冷电阻器将多余的制动能量转化为有用的热量,因此非常适合电动或混合动力驱动。与传统的风冷制动电阻器相比,水冷可节省高达 88% 的额外空间。作为一个额外的功能,电阻器可以很容易地与无滴漏的快速紧固件连接。由于即使…

注意力特征融合

摘要 https://arxiv.org/pdf/2009.14082 特征融合,即来自不同层或分支的特征的组合,是现代网络架构中无处不在的一部分。它通常通过简单的操作来实现,如求和或拼接,但这可能不是最佳选择。在这项工作中,我们提出了一种…

【Mybatis】浅谈Mybatis的缓存机制,一级缓存和二级缓存

目录 1. 缓存机制介绍 2. 一级缓存 3. 二级缓存 4. mybatis缓存执行流程 1. 缓存机制介绍 MyBatis 的缓存机制是为了提高应用程序的性能而设计的,通过缓存策略来减少数据库的查询次数。MyBatis 提供了两种类型的缓存:一级缓存和二级缓存。 默认情况下…

web框架:Django进阶(二)

文章目录 Django进阶(二)1.orm1.1 基本操作1.2 连接数据库1.3 连接池1.4 多数据库1.4.1 读写分离1.4.2 分库(多个app ->多数据库)1.4.3 分库(单app)1.4.4 注意事项 1.5 表关系1.6 数据操作单表一对多正向…

IIS解析漏洞~ IIS7.漏洞分析

IIS解析漏洞 文件解析漏洞是由于中间件错误的将特殊格式的文件解析成可执行网页文件(脚本),配合文件上传漏洞进行GetShell的漏洞! 1.2:IIS7.X 在IIS7.0和IIS7.5版本下也存在解析漏洞,在默认Fast-CGI开启状况下,在一个文…

Modbus通讯协议

Modbus通讯协议 Modbus协议是一种用于电子控制器之间的通信协议,‌它允许不同类型的设备之间进行通信,‌以便进行数据交换和控制。‌Modbus协议最初为可编程逻辑控制器(‌PLC)‌通信开发,‌现已广泛应用于工业自动化领…

Error: No module factory available for dependency type: CssDependency

本篇主要用来记录VUE打包的问题点,今天使用npm run build:prod 打包VUE出现如下问题: Error: No module factory available for dependency type: CssDependency 因为测试和预发布都挺正常的,正式环境竟然出问题,废话不多说&…

用 Python 编写的井字游戏

一.介绍 在本文中,我将向您展示如何使用 Python 创建一个非常简单的井字游戏。 井字游戏是一种非常简单的双人游戏。因此每次只能有两个玩家玩。该游戏也称为井字游戏或 Xs 和 Os 游戏。一个玩家玩 X,另一个玩家玩 O。在这个游戏中,我们有一…

java+springboot+mysql疾病查询网站01548-计算机毕业设计项目选题推荐(附源码)

摘 要 随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的疾病查询网站,会使疾病查询工作系统化、规范化,也会提高医院形象,提高管理效率。 本疾病查…

最强开源模型 Llama 3.1 部署推理微调实战大全

目录 引言一、Llama 3.1简介二、Llama 3.1性能评估三、Llama 3.1模型推理实战1、环境准备2、安装依赖3、模型下载4、模型推理 四、Llama 3.1模型微调实战1、数据集准备2、导入依赖包3、读取数据集4、处理数据集5、定义模型6、Lora配置7、配置训练参数8、开始Trainer训练9、合并…

Effective Java 学习笔记--第18、19条继承与复合

目录 继承的设计 对用于继承的类可覆盖方法的说明 被继承类还需要遵循的约束 如何对继承类进行测试 如何禁止继承 复合的设计 什么是复合 复合的缺点 这两条的关系较强,核心都是继承,但是更强调继承的脆弱性,而且给出了继承的一个更优…

【云原生】Helm来管理Kubernetes集群的详细使用方法与综合应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

香港电讯亮相2024算网融合产业发展大会,荣获“SD-WAN优秀产品奖”

秉承“开放、创新、融合、共赢”的发展战略,中国通信标准化协会算网融合产业及标准推进委员会(CCSATC621)联合中国信息通信研究院,于2024年7月10日共同召开“2024年算网融合产业发展大会”。本次大会发布了多项算网融合领域最新研…

SpringBoot 日志:从基础到高级的全面指南

📚 SpringBoot 日志:从基础到高级的全面指南 🔍 📚 SpringBoot 日志:从基础到高级的全面指南 🔍摘要引言正文内容一、日志概述 📜二、日志使用 📝2.1 打印日志 📣2.2 日志…

主文件表遗失:数据恢复策略与实战指南

深入解析:无法恢复主文件表的困境 在数字化时代,数据不仅是信息的载体,更是企业运营和个人生活的核心。然而,当遭遇“无法恢复主文件表”的困境时,整个数据系统仿佛被按下了暂停键,让人措手不及。主文件表…

数据集成是什么意思?方法有哪些?数据集成三种方法介绍

1 数据集成是什么 数据集成(Data Intergration),也称为数据整合,是通过将分布式环境中的异构数据集成起来,为用户提供统一透明的数据访问方式。该定义中的集成是指从整体层面上维护数据的一致性,并提高对数据的利用和共享&#x…

智能语音转Markdown的神器

嘿,技术大咖们,今天我要给你们安利一个超酷炫的智能语音转Markdown笔记系统,它融合了前沿的语音识别技术和强大的AI大模型,绝对是记录和整理信息的神器! 打造了一个语音转Markdown的神器 智能语音生成Markdown笔记 这…

芋道源码yudao-cloud 二开日记(商品sku数据归类为规格属性)

商品的每一条规格和属性在数据库里都是单一的一条数据,从数据库里查出来后,该怎么归类为对应的规格和属性值?如下图: 在商城模块,商品的单规格、多规格、单属性、多属性功能可以说是非常完整,如下图&#x…

Java新手启航:JDK 21 版本安装,开启编程之行

在Java开发前,JDK是必不可少的环境,接下来,让我们一起完成JDK 21版本的下载和安装! 种一棵树最好的时间是10年前,其次就是现在,加油! …