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

目录

一、用法精讲

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.NoteThe 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 = TrueReturns:
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.rhkb.cn/news/389156.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot的表现层/控制层controller开发

第一步:新建文件和注入业务层对象 需要使用的注解: 第一个声明是restful风格开发 第二个是需要设置网页访问路径 RestController RequestMapping("/fuels")//http://localhost/fuels注入服务层对象: Autowiredprivate FuelServ…

RabbitMQ知识总结(基本概念)

文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 文章收录在网站:http://hardyfish.top/ 基本概念 Producer: 消息的生产者,是一个向…

活动报道 | 盘古信息携IMS OS+小快轻准产品集亮相东莞市中小数转试点供需对接会

8月1日,由东莞市工业和信息化局主办,南城街道经济发展局承办,东莞市软件行业协会协办的东莞市中小企业数字化转型城市试点供需对接会(城区和水乡新城片区)隆重召开。市工业和信息化局副局长江小敏、市工业和信息化局信…

Mybatis超级方便操作数据方式(注解+封装mapper接口)!!!

Mybatis作为一个流行的持久层框架,其优化了Java程序与数据库的交互过程。它的核心在于使用Mapper接口与XML映射文件或注解绑定来实现对数据库的操作。这种方式不仅简化了数据库操作,还提升了开发效率,使得开发者可以从繁琐的JDBC代码中解放出…

MIT-离散数学笔记

离散数学 PropositionEx 1:Ex 2:Ex 3:Ex 4:Ex 5:Ex 6:Ex 7:Ex 8: Proposition In mathematics, we have a mathematical proof is a verification of a proposition by a chain of logical deductions from a set of axioms. 在数学中,数学证明是通过一组公理的一系…

Vmware ubuntu20.04 虚拟文件夹

目录 1.vmware 设置 2.ubuntu设置 1.vmware 设置 设置完成后我们开机 2.ubuntu设置 我们打开终端 输入命令 vmware-hgfsclient可以看到你当前的共享文件 然后我们输入以下命令,用于将共享文件夹挂载到虚拟机中 sudo vmhgfs-fuse .host:/ /mnt -o nonempty -o …

从零开始安装Jupyter Notebook和Jupyter Lab图文教程

前言 随着人工智能热浪(机器学习、深度学习、卷积神经网络、强化学习、AGC以及大语言模型LLM, 真的是一浪又一浪)的兴起,小伙伴们Python学习的热情达到了空前的高度。当我20年前接触Python的时候,做梦也没有想到Python会发展得怎么…

Blackcat V2.2付费会员制WordPress资源站主题

Blackcat-付费会员制WordPress资源站主题,该主题是基于简约实用的主题选项框架 Codestar Framework 进行开发的功能强大的付费会员制主题,该主题尤其适合用于搭建付费下载资源网站,比如素材站、软件站、视频教程站等付费资源下载网站。 集成…

(~_~)

一、用不同url头利用python访问一个网站,并把返回的东西保存为 requests库 主要用于http发送请求和处理响应 1.发送get和post请求 requests.get(目标网址) requests.post(url,data) post于get不同的是get一般用来请求获取数据,而post相当于带着数…

Yearning-MYSQL 审计平台部署

目录 一. 环境准备 二. 部署安装 三. 基础使用 1.用户管理 2. 创建SQL审计流程 3. 自定义审核规则 4. 导入数据源 5. 创建权限组 6. 登录用户申请工单 1. 创建一个DDL工单提交 2. SQL审核执行 3. SQL执行 4. 数据验证 Yearning 是一个开源的 MySQL SQL 审计平台…

动态规划-斐波那契数列

一. 什么是动态规划 dp一般是需要前面状态的值的问题。比如,解决一个问题需要很多步骤,且步骤之间相关联,后一个步骤的推导需要前一个步骤的结论。而我们所做的就是,将这个带求解的问题分成若干步骤,将每个步骤答案保…

python 去除验证码图片噪音

在处理验证码图片时,出现噪音,如横线、像素点等问题往往会影响识别率,这里给出一个去除噪音的方法,仅供学习。 import cv2 import os import numpy as np import copydef del_noise(img, number):height img.shape[0]width img…

JavaScript模块化

JavaScript模块化 一、CommonJS规范1、在node环境下的模块化导入、导出 2、浏览器环境下使用模块化browserify编译js 二、ES6模块化规范1、在浏览器端的定义和使用2、在node环境下简单使用方式一:方式二: 3、导出数据4、导入数据5、数据引用问题 一、Com…

前端:Vue学习 - 智慧商城项目

前端:Vue学习 - 智慧商城项目 1. vue组件库 > vant-ui2. postcss插件 > vw 适配3. 路由配置4. 登录页面静态布局4.1 封装axios实例访问验证码接口4.2 vant 组件 > 轻提示4.3 短信验证倒计时4.4 登录功能4.5 响应拦截器 > 统一处理错误4.6 登录权证信息存…

Mybatis学习(2)

分页 目的:减少数据的处理量 方式一:使用limit实现分页,核心SQL sql语法:select * from user limit startIndex,pageSize; 步骤: 1、接口 2、Mapper.xml 3、测试 方式二:使用注解开发 1、…

每日一题~EC168 A+B+C+D

A 题意: 字符串 每一个字符的花费是2,如果ai-1 ai ,那么ai 的花费是1. 现在可以插入一个字符,得到最大花费。输出插入字符之后的字符串。 分析:只需要在相同的连续字符中间插入一个不同的字符就可以了。如果没有连续的相同字符&am…

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

目录 一、用法精讲 226、pandas.Series.pad方法 226-1、语法 226-2、参数 226-3、功能 226-4、返回值 226-5、说明 226-6、用法 226-6-1、数据准备 226-6-2、代码示例 226-6-3、结果输出 227、pandas.Series.replace方法 227-1、语法 227-2、参数 227-3、功能 …

最强开源模型 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、合并…

什么是负责任的人工智能

「AI秘籍」系列课程: 人工智能应用数学基础人工智能Python基础人工智能基础核心知识人工智能BI核心知识人工智能CV核心知识AI 进阶:企业项目实战 可直接在橱窗里购买,或者到文末领取优惠后购买: 拥有权利的同时也被赋予了重大的…

Modbus通讯协议

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