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

目录

一、用法精讲

91、pandas.Series.set_flags方法

91-1、语法

91-2、参数

91-3、功能

91-4、返回值

91-5、说明

91-6、用法

91-6-1、数据准备

91-6-2、代码示例

91-6-3、结果输出

92、pandas.Series.astype方法

92-1、语法

92-2、参数

92-3、功能

92-4、返回值

92-5、说明

92-6、用法

92-6-1、数据准备

92-6-2、代码示例

92-6-3、结果输出

93、pandas.Series.convert_dtypes方法

93-1、语法

93-2、参数

93-3、功能

93-4、返回值

93-5、说明

93-6、用法

93-6-1、数据准备

93-6-2、代码示例

93-6-3、结果输出

94、pandas.Series.infer_objects方法

94-1、语法

94-2、参数

94-3、功能

94-4、返回值

94-5、说明

94-6、用法

94-6-1、数据准备

94-6-2、代码示例

94-6-3、结果输出

95、pandas.Series.copy方法

95-1、语法

95-2、参数

95-3、功能

95-4、返回值

95-5、说明

95-6、用法

95-6-1、数据准备

95-6-2、代码示例

95-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

91、pandas.Series.set_flags方法
91-1、语法
# 91、pandas.Series.set_flags方法
pandas.Series.set_flags(*, copy=False, allows_duplicate_labels=None)
Return a new object with updated flags.Parameters:
copybool, default False
Specify if a copy of the object should be made.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 = Trueallows_duplicate_labelsbool, optional
Whether the returned object allows duplicate labels.Returns:
Series or DataFrame
The same type as the caller.
91-2、参数

91-2-1、copy(可选,默认值为False)如果设置为True,则会创建Series的一个副本,并在副本上设置标志;如果为False,则在原始Series上设置标志。大多数情况下,建议保持默认值True,以避免意外更改原始数据。

91-2-2、allows_duplicate_labels(可选,默认值为None)如果设置为True,允许Series对象包含重复的索引标签。默认情况下,Pandas的Series不允许具有相同索引标签的重复条目。

91-3、功能

        用于设置Series对象标志的方法。

91-4、返回值

        没有返回任何值,它主要用于设置Series对象的标志。

91-5、说明

        调用该方法后,会在原始Series对象上直接进行修改(如果copy参数设置为False),或者返回一个副本(如果copy参数设置为True),如果你需要获取修改后的Series对象,直接使用原始Series对象即可。

91-6、用法
91-6-1、数据准备
91-6-2、代码示例
# 91、pandas.Series.set_flags方法
import pandas as pd
# 创建一个示例Series
data = [10, 20, 30, 40]
index = ['a', 'b', 'c', 'd']
series = pd.Series(data, index=index)
# 使用set_flags方法
series_with_flags = series.set_flags(allows_duplicate_labels=True)
# 显示原Series和带有flags的Series
print("原始Series:")
print(series)
print("\n带有flags的Series:")
print(series_with_flags)
# 尝试添加重复标签,测试allows_duplicate_labels=True是否生效
series_with_duplicate_labels = series_with_flags._append(pd.Series([50], index=['a']))
print("\n带有重复标签的Series:")
print(series_with_duplicate_labels)
91-6-3、结果输出
# 91、pandas.Series.set_flags方法
# 原始Series:
# a    10
# b    20
# c    30
# d    40
# dtype: int64
# 
# 带有flags的Series:
# a    10
# b    20
# c    30
# d    40
# dtype: int64
# 
# 带有重复标签的Series:
# a    10
# b    20
# c    30
# d    40
# a    50
# dtype: int64
92、pandas.Series.astype方法
92-1、语法
# 92、pandas.Series.astype方法
pandas.Series.astype(dtype, copy=None, errors='raise')
Cast a pandas object to a specified dtype dtype.Parameters:
dtypestr, data type, Series or Mapping of column name -> data type
Use a str, numpy.dtype, pandas.ExtensionDtype or Python type to cast entire pandas object to the same type. Alternatively, use a mapping, e.g. {col: dtype, …}, where col is a column label and dtype is a numpy.dtype or Python type to cast one or more of the DataFrame’s columns to column-specific types.copybool, default True
Return a copy when copy=True (be very careful setting copy=False as changes to values then may propagate to other pandas objects).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 = Trueerrors{‘raise’, ‘ignore’}, default ‘raise’
Control raising of exceptions on invalid data for provided dtype.raise : allow exceptions to be raisedignore : suppress exceptions. On error return original object.Returns:
same type as caller
92-2、参数

92-2-1、dtype(必须)表示要转换为的数据类型,可以是字符串形式的数据类型名称(例如'int'、'float'、'datetime'等),也可是NumPy的数据类型对象(例如numpy.int64、numpy.float32、numpy.datetime64等)。

92-2-2、copy(可选,默认值为False)如果设置为True,则会创建Series的一个副本,并在副本上设置标志;如果为False,则在原始Series上设置标志。大多数情况下,建议保持默认值True,以避免意外更改原始数据。

92-2-3、errors(可选,默认值为'raise')如果转换过程中出现错误,应该如何处理。可以选择以下几种方式:

92-2-3-1、'raise':默认选项,如果出现错误,则引发异常。

92-2-3-2、'ignore':忽略错误,保留原始数据类型。

92-2-3-3、'coerce':将无法转换的值设置为缺失值(NaN)。

92-3、功能

        用于将Series对象的数据类型转换为指定的数据类型。

92-4、返回值

        返回一个带有转换后数据类型的新Series对象,如果copy=False,则直接在原始Series上进行数据类型转换并返回该Series。

92-5、说明

        无

92-6、用法
92-6-1、数据准备
92-6-2、代码示例
# 92、pandas.Series.astype方法
import pandas as pd
# 创建一个示例Series
data = [10, 20, 30, 40]
index = ['a', 'b', 'c', 'd']
series = pd.Series(data, index=index)
# 将数据类型转换为float,并创建副本
series_float = series.astype('float', copy=True)
# 显示转换后的Series
print(series_float, end='\n\n')
# 将数据类型转换为datetime,并在原始Series上进行转换
series_datetime = series.astype('int64', copy=False)
# 显示转换后的Series
print(series_datetime)
92-6-3、结果输出
# 92、pandas.Series.astype方法
# a    10.0
# b    20.0
# c    30.0
# d    40.0
# dtype: float64
# 
# a    10
# b    20
# c    30
# d    40
# dtype: int64
93、pandas.Series.convert_dtypes方法
93-1、语法
# 93、pandas.Series.convert_dtypes方法
pandas.Series.convert_dtypes(infer_objects=True, convert_string=True, convert_integer=True, convert_boolean=True, convert_floating=True, dtype_backend='numpy_nullable')
Convert columns to the best possible dtypes using dtypes supporting pd.NA.Parameters:
infer_objectsbool, default True
Whether object dtypes should be converted to the best possible types.convert_stringbool, default True
Whether object dtypes should be converted to StringDtype().convert_integerbool, default True
Whether, if possible, conversion can be done to integer extension types.convert_booleanbool, defaults True
Whether object dtypes should be converted to BooleanDtypes().convert_floatingbool, defaults True
Whether, if possible, conversion can be done to floating extension types. If convert_integer is also True, preference will be give to integer dtypes if the floats can be faithfully casted to integers.dtype_backend{‘numpy_nullable’, ‘pyarrow’}, default ‘numpy_nullable’
Back-end data type applied to the resultant DataFrame (still experimental). Behaviour is as follows:"numpy_nullable": returns nullable-dtype-backed DataFrame (default)."pyarrow": returns pyarrow-backed nullable ArrowDtype DataFrame.New in version 2.0.Returns:
Series or DataFrame
Copy of input object with new dtype.
93-2、参数

93-2-1、infer_objects(可选,默认值为True)是否推断object列的类型。

93-2-2、convert_string(可选,默认值为True)是否将object类型转换为字符串。

93-2-3、convert_integer(可选,默认值为True)是否将 object类型转换为整数。

93-2-4、convert_boolean(可选,默认值为True)是否将object类型转换为布尔值。

93-2-5、convert_floating(可选,默认值为True)是否将object类型转换为浮点类型。

93-2-6、dtype_backend(可选,默认值为'numpy_nullable')内部调用,一般不需要用户设置。

93-3、功能

        旨在自动为DataFrame中的每一列或Series中的数据找到最佳的数据类型,这可以通过使用更合适的数据类型来提高内存效率和性能。

93-4、返回值

        返回值是一个新的、可能包含pandas扩展数据类型的Series,但dtype属性可能不足以完全反映这些内部优化。

93-5、说明

93-5-1、自动类型推断:该方法尝试推断Series中每个元素的最佳数据类型。例如,它可能将object类型转换为string类型,将integer转换为Int64类型,或者将float转换为Float64类型。

93-5-2、内存优化:通过转换为最合适的数据类型,可以减少内存使用。

93-5-3、可为空类型:在转换时,它还使用可为空类型(如Int64、Float64和boolean),这些类型可以比它们的不可为空对应物更优雅地处理缺失值。

93-6、用法
93-6-1、数据准备
93-6-2、代码示例
# 93、pandas.Series.convert_dtypes方法
import pandas as pd
# 创建一个包含不同类型数据的Series
data = pd.Series([1, 2.5, '3', True])
# 原始数据类型
print("原始数据类型:")
print(data.dtypes)  
# 使用 convert_dtypes 方法
converted_data = data.convert_dtypes()
# 转换后的数据类型
print("转换后的数据类型:")
print(converted_data.dtypes)
93-6-3、结果输出
# 93、pandas.Series.convert_dtypes方法
# 原始数据类型:  
# object  
# 转换后的数据类型:  
# Int64  
# Float64  
# String  
# bool  
# dtype: object
94、pandas.Series.infer_objects方法
94-1、语法
# 94、pandas.Series.infer_objects方法
pandas.Series.infer_objects(copy=None)
Attempt to infer better dtypes for object columns.Attempts soft conversion of object-dtyped columns, leaving non-object and unconvertible columns unchanged. The inference rules are the same as during normal Series/DataFrame construction.Parameters:
copybool, default True
Whether to make a copy for non-object or non-inferable columns or Series.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:
same type as input object
94-2、参数

94-2-1、copy(可选,默认值为None)控制是否返回副本而不是在原始数据上进行操作。取值包括:

94-2-1-1、None(默认):表示方法在原始数据上进行操作,而不生成副本。

94-2-1-2、True:生成数据的副本,并在副本上执行操作,原始数据保持不变。

94-2-1-3、False:在原始数据上直接执行操作,此时原始数据可能会被修改。

94-3、功能

        尝试推断Series中的数据类型,并将其转换为更合适的数据类型,它可以帮助处理混合数据类型的情况,使得数据分析和操作更加高效。

94-4、返回值

        返回值是一个经过数据类型推断后的Pandas Series,其中每个元素的数据类型被推断为最合适的类型。

94-5、说明

        无

94-6、用法
94-6-1、数据准备
94-6-2、代码示例
# 94、pandas.Series.infer_objects方法
import pandas as pd
# 创建一个混合数据类型的Series
data = pd.Series([1, 2.0, '3', 4.5])
# 显示初始数据类型
print("初始数据类型:")
print(data.apply(type))
# 使用infer_objects方法推断数据类型
data = data.infer_objects()
# 显示推断后的数据类型
print("\n推断后的数据类型:")
print(data.apply(type))
94-6-3、结果输出
# 94、pandas.Series.infer_objects方法
# 初始数据类型:
# 0      <class 'int'>
# 1    <class 'float'>
# 2      <class 'str'>
# 3    <class 'float'>
# dtype: object
#
# 推断后的数据类型:
# 0      <class 'int'>
# 1    <class 'float'>
# 2      <class 'str'>
# 3    <class 'float'>
# dtype: object
95、pandas.Series.copy方法
95-1、语法
# 95、pandas.Series.copy方法
pandas.Series.copy(deep=True)
Make a copy of this object’s indices and data.When deep=True (default), a new object will be created with a copy of the calling object’s data and indices. Modifications to the data or indices of the copy will not be reflected in the original object (see notes below).When deep=False, a new object will be created without copying the calling object’s data or index (only references to the data and index are copied). Any changes to the data of the original will be reflected in the shallow copy (and vice versa).NoteThe deep=False behaviour as described above will change in pandas 3.0. Copy-on-Write will be enabled by default, which means that the “shallow” copy is that is returned with deep=False will still avoid making an eager copy, but changes to the data of the original will no longer be reflected in the shallow copy (or vice versa). Instead, it makes use of a lazy (deferred) copy mechanism that will copy the data only when any changes to the original or shallow copy is made.You can already get the future behavior and improvements through enabling copy on write pd.options.mode.copy_on_write = TrueParameters:
deep
bool, default True
Make a deep copy, including a copy of the data and the indices. With deep=False neither the indices nor the data are copied.Returns:
Series or DataFrame
Object type matches caller.NotesWhen deep=True, data is copied but actual Python objects will not be copied recursively, only the reference to the object. This is in contrast to copy.deepcopy in the Standard Library, which recursively copies object data (see examples below).While Index objects are copied when deep=True, the underlying numpy array is not copied for performance reasons. Since Index is immutable, the underlying data can be safely shared and a copy is not needed.Since pandas is not thread safe, see the gotchas when copying in a threading environment.When copy_on_write in pandas config is set to True, the copy_on_write config takes effect even when deep=False. This means that any changes to the copied data would make a new copy of the data upon write (and vice versa). Changes made to either the original or copied variable would not be reflected in the counterpart. See Copy_on_Write for more information.
95-2、参数

95-2-1、deep(可选,默认值为True)当deep参数设置为True时,copy()方法会创建一个新的Series对象,该对象中的数据(包括其内部的numpy数组)也会被复制,这意味着新创建的Series和原始Series在内存中是完全独立的;对其中一个所做的修改(如添加、删除元素或修改元素值)不会影响到另一个。

95-3、功能

        用于创建一个Series对象的副本。

95-4、返回值

        返回一个新的Series对象。

95-5、说明

        如果使用pandas.Series.copy(deep=True),则可以进行深拷贝,这意味着不仅会复制Series的数据和索引,还会复制其中的对象引用,使得新创建的Series对象与原始对象完全独立,即使修改其中一个对象,另一个对象也不受影响,因此,deep=True参数在需要创建一个原始对象完全独立的副本时非常有用。

95-6、用法
95-6-1、数据准备
95-6-2、代码示例
# 95、pandas.Series.copy方法
import pandas as pd
# 创建一个原始的Series对象
original_series = pd.Series([1, 2, 3, 4, 5])
# 进行深拷贝,创建副本
copied_series = original_series.copy(deep=True)
# 修改原始对象的值
original_series[0] = 100
# 打印两个对象,观察副本是否受到影响
print("原始Series对象:")
print(original_series)
print("\n拷贝的Series对象:")
print(copied_series)
95-6-3、结果输出
# 95、pandas.Series.copy方法
# 原始Series对象:
# 0    100
# 1      2
# 2      3
# 3      4
# 4      5
# dtype: int64
#
# 拷贝的Series对象:
# 0    1
# 1    2
# 2    3
# 3    4
# 4    5
# dtype: int64

二、推荐阅读

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

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

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

相关文章

​1:1公有云能力整体输出,腾讯云“七剑”下云端

【全球云观察 &#xff5c; 科技热点关注】 曾几何时&#xff0c;云计算技术的兴起&#xff0c;为千行万业的数字化创新带来了诸多新机遇&#xff0c;同时也催生了新产业新业态新模式&#xff0c;激发出高质量发展的科技新动能。很显然&#xff0c;如今的云创新已成为高质量发…

液氮罐搬运过程中的安全注意事项有哪些

在液氮罐搬运过程中&#xff0c;安全性是至关重要的考虑因素。液氮是一种极低温的液体&#xff0c;其温度可达零下196摄氏度&#xff0c;在接触到人体或物体时会迅速引发严重的冷冻伤害。因此&#xff0c;正确的搬运和使用液氮罐是保障操作安全的关键。 液氮是一种无色、无味的…

RK3568笔记四十:设备树

若该文为原创文章&#xff0c;转载请注明原文出处。 一、介绍 设备树 (Device Tree) 的作用就是描述一个硬件平台的硬件资源&#xff0c;一般描述那些不能动态探测到的设备&#xff0c;可以被动态探测到的设备是不需要描述。 设备树可以被 bootloader(uboot) 传递到内核&#x…

分布式服务框架zookeeper+消息队列kafaka

一、zookeeper概述 zookeeper是一个分布式服务框架&#xff0c;它主要是用来解决分布式应用中经常遇到的一些数据管理问题&#xff0c;如&#xff1a;命名服务&#xff0c;状态同步&#xff0c;配置中心&#xff0c;集群管理等。 在分布式环境下&#xff0c;经常需要对应用/服…

项目的一些操作

一、发送qq邮箱验证码以及倒计时 要发送验证码需要用到邮箱的授权码&#xff1a; qq邮箱获取方式&#xff0c;打开qq邮箱点设置找到如下界面&#xff1a; 然后获取授权码&#xff1b; 导入依赖 <dependency><groupId>com.sun.mail</groupId><artifactId&…

LeetCode 算法:单词搜索 c++

原题链接&#x1f517;&#xff1a;单词搜索 难度&#xff1a;中等⭐️⭐️ 题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通…

详解MLOps,从Jupyter开发到生产部署

大家好&#xff0c;Jupyter notebook 是机器学习的便捷工具&#xff0c;但在应用部署方面存在局限。为了提升其可扩展性和稳定性&#xff0c;需结合DevOps和MLOps技术。通过自动化的持续集成和持续交付流程&#xff0c;可将AI应用高效部署至HuggingFace平台。 本文将介绍MLOps…

kotlin compose 实现应用内多语言切换(不重新打开App)

1. 示例图 2.具体实现 如何实现上述示例,且不需要重新打开App ①自定义 MainApplication 实现 Application ,定义两个变量: class MainApplication : Application() { object GlobalDpData { var language: String = "" var defaultLanguage: Strin…

Linux TFTP服务搭建及使用

1、TFTP 服务器介绍 TFTP &#xff08; Trivial File Transfer Protocol &#xff09;即简单文件传输协议是 TCP/IP 协议族中的一个用来在客户机与服务器之间进行简单文件传输的协议&#xff0c;提供不复杂、开销不大的文件传输服务。端口号为 69 2、TFTP 文件传输的特点 tftp…

3、宠物商店智能合约实战(truffle智能合约项目实战)

3、宠物商店智能合约实战&#xff08;truffle智能合约项目实战&#xff09; 1-宠物商店环境搭建、运行2-webjs与宠物逻辑实现3-领养智能合约初始化4-宠物领养实现5-更新宠物领养状态 1-宠物商店环境搭建、运行 https://www.trufflesuite.com/boxes/pet-shop 这个还是不行 或者…

ArkUI状态管理

State装饰器 在声明式UI中&#xff0c;是以状态驱动试图更新 状态 (State) 指驱动视图更新的数据(被装饰器标记的变量) 试图(View) 基于UI描述渲染得到用户界面 说明 1.State装饰器标记的变量必须初始化&#xff0c;不能为空 2.State支持Object、classstring、number、b…

[Vulnhub] devt-improved slog_users+vim权限提升+nano权限提升+passwd权限提升+Lxc逃逸权限提升

信息收集 IP AddressOpening Ports192.168.101.149TCP:22,113,139,445,8080 $ nmap -p- 192.168.101.149 --min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: | …

9.11和9.9哪个大?GPT-4o也翻车了

今天刷到了这个问题&#xff0c;心血来潮去问下chatgpt-4o&#xff0c;没想到疯狂翻车... 第一次问&#xff1a; GPT一开始给出了难绷的解答&#xff0c;让我想起了某短视频软件评论区里对某歌手节目排名的质疑哈哈哈哈哈 但是在接下来的进一步询问和回答中它反应过来了。 第…

JavaWeb笔记_Response对象

一.Response对象 1.1 Response对象概述 a.专门负责给浏览器响应信息&#xff08;响应行&#xff0c;响应头&#xff0c;响应体&#xff09;的对象 b.我们主要使用的是跟HTTP协议相关的Response对象&#xff1a;HTTPServletResponse&#xff0c;继承了ServletResponse&#x…

MAVSDK-Java开源库的SDK库macOS平台编译

1.先安装好JDK17 2.克隆MAVSDK-Java源码 3.检测工程./gradlew check 发现未安装protoc-gen-mavsdk 安装后要添加到环境变量 4.安装protoc-gen-mavsdk pip3 install protoc-gen-mavsdk安装路径为: /opt/anaconda3/lib/python3.11/site-packages/protoc_gen_mavsdk

“社群+”生态下的开源AI智能名片源码:驱动商业与社会连接的新引擎

摘要&#xff1a;在“社群”生态日益成为主流趋势的今天&#xff0c;开源AI智能名片源码作为技术创新与社群运营的深度融合体&#xff0c;正逐步展现出其重塑商业格局、深化社会连接的巨大潜力。本文旨在深入探讨开源AI智能名片源码的技术特性、在“社群”生态中的具体应用、对…

Postman导出excel文件

0 写在前面 在我们后端写接口的时候&#xff0c;前端页面还没有出来&#xff0c;我们就得先接口测试&#xff0c;在此记录下如何使用postman测试导出excel接口。 如果不会使用接口传参可以看我这篇博客如何使用Postman 1 方法一 2 方法二 3 写在末尾 虽然在代码中写入文件名…

电流测量分流电阻

电流测量分流电阻 测量电流的设备称为安培计。大多数现代安培计测量已知电阻的精密电阻上的电压降。电流的计算使用欧姆定律&#xff1a;我五R 大多数电流表都内置电阻器来测量电流。但是&#xff0c;当电流对于电流表来说太高时&#xff0c;需要不同的设置。解决方案是将电流…

Chromium CI/CD 之Jenkins实用指南2024- Windows节点开启SSH服务(七)

1.引言 在现代软件开发和持续集成的过程中&#xff0c;自动化部署和远程管理是不可或缺的关键环节。SSH&#xff08;Secure Shell&#xff09;协议以其强大的安全性和灵活性&#xff0c;成为连接和管理远程服务器的首选工具。对于使用Windows虚拟机作为Jenkins从节点的开发者而…

Visual Studio Code 实现远程开发

Background 远程开发是指开发人员在本地计算机上进行编码、调试和测试&#xff0c;但实际的开发环境、代码库或应用程序运行在远程服务器上。远程开发的实现方式多种多样&#xff0c;包括通过SSH连接到远程服务器、使用远程桌面软件、或者利用云开发环境等。这里我们是使用VSCo…