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

news2024/11/23 21:35:49

目录

一、用法精讲

241、pandas.Series.view方法

241-1、语法

241-2、参数

241-3、功能

241-4、返回值

241-5、说明

241-6、用法

241-6-1、数据准备

241-6-2、代码示例

241-6-3、结果输出

242、pandas.Series.compare方法

242-1、语法

242-2、参数

242-3、功能

242-4、返回值

242-5、说明

242-6、用法

242-6-1、数据准备

242-6-2、代码示例

242-6-3、结果输出

243、pandas.Series.update方法

243-1、语法

243-2、参数

243-3、功能

243-4、返回值

243-5、说明

243-6、用法

243-6-1、数据准备

243-6-2、代码示例

243-6-3、结果输出

244、pandas.Series.asfreq方法

244-1、语法

244-2、参数

244-3、功能

244-4、返回值

244-5、说明

244-6、用法

244-6-1、数据准备

244-6-2、代码示例

244-6-3、结果输出

245、pandas.Series.asof方法

245-1、语法

245-2、参数

245-3、功能

245-4、返回值

245-5、说明

245-6、用法

245-6-1、数据准备

245-6-2、代码示例

245-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

241、pandas.Series.view方法
241-1、语法
# 241、pandas.Series.view方法
pandas.Series.view(dtype=None)
Create a new view of the Series.

Deprecated since version 2.2.0: Series.view is deprecated and will be removed in a future version. Use Series.astype() as an alternative to change the dtype.

This function will return a new Series with a view of the same underlying values in memory, optionally reinterpreted with a new data type. The new data type must preserve the same size in bytes as to not cause index misalignment.

Parameters:
dtype
data type
Data type object or one of their string representations.

Returns:
Series
A new Series object as a view of the same data in memory.
241-2、参数

241-2-1、dtype(可选,默认值为None)数据类型,可以是NumPy数据类型或pandas数据类型。如果未指定,返回相同dtype的视图。

241-3、功能

        用于创建Series的视图,并且可以通过指定不同的数据类型来查看同一数据在内存中的不同表示,这在数据转换和内存管理方面非常有用。

241-4、返回值

        返回的视图是一个新的Series对象,但它与原始Series共享同一块内存,因此对视图所做的修改会直接影响原始Series。

241-5、说明

        此方法目前仍然能用,但后续将被pandas.Series.astype方法所替代。

241-6、用法
241-6-1、数据准备
241-6-2、代码示例
# 241、pandas.Series.view方法
# 241-1、创建一个视图并查看不同的数据类型表示
import pandas as pd
# 创建一个Series
s = pd.Series([1, 2, 3, 4])
# 以float64数据类型查看Series
view_as_float = s.view(dtype='float64')
print("Original Series:")
print(s)
print("Viewed as float64:")
print(view_as_float, end='\n\n')

# 241-2、修改视图中的数据,影响原始Series
import pandas as pd
# 创建一个Series
s_original = pd.Series([1, 2, 3, 4])
# 创建一个视图
s_view = s_original.view()
# 修改视图中的数据
s_view[0] = 10
print("Original Series after modification:")
print(s_original)
print("Modified view:")
print(s_view)
241-6-3、结果输出
# 241、pandas.Series.view方法
# 241-1、创建一个视图并查看不同的数据类型表示
# Original Series:
# 0    1
# 1    2
# 2    3
# 3    4
# dtype: int64
# Viewed as float64:
# 0    4.940656e-324
# 1    9.881313e-324
# 2    1.482197e-323
# 3    1.976263e-323
# dtype: float64

# 241-2、修改视图中的数据,影响原始Series
# Original Series after modification:
# 0    10
# 1     2
# 2     3
# 3     4
# dtype: int64
# Modified view:
# 0    10
# 1     2
# 2     3
# 3     4
# dtype: int64
242、pandas.Series.compare方法
242-1、语法
# 242、pandas.Series.compare方法
pandas.Series.compare(other, align_axis=1, keep_shape=False, keep_equal=False, result_names=('self', 'other'))
Compare to another Series and show the differences.

Parameters:
otherSeries
Object to compare with.

align_axis{0 or ‘index’, 1 or ‘columns’}, default 1
Determine which axis to align the comparison on.

0, or ‘index’Resulting differences are stacked vertically
with rows drawn alternately from self and other.

1, or ‘columns’Resulting differences are aligned horizontally
with columns drawn alternately from self and other.

keep_shapebool, default False
If true, all rows and columns are kept. Otherwise, only the ones with different values are kept.

keep_equalbool, default False
If true, the result keeps values that are equal. Otherwise, equal values are shown as NaNs.

result_namestuple, default (‘self’, ‘other’)
Set the dataframes names in the comparison.

New in version 1.5.0.

Returns:
Series or DataFrame
If axis is 0 or ‘index’ the result will be a Series. The resulting index will be a MultiIndex with ‘self’ and ‘other’ stacked alternately at the inner level.

If axis is 1 or ‘columns’ the result will be a DataFrame. It will have two columns namely ‘self’ and ‘other’.
242-2、参数

242-2-1、other(必须)表示另一个与当前Series进行比较的Series。

242-2-2、align_axis(可选,默认值为1)表示对齐轴,可选0或1:1表示列对齐,0表示行对齐。

242-2-3、keep_shape(可选,默认值为False)是否保留原始的Series形状,如果为True,则保留NaN值。

242-2-4、keep_equal(可选,默认值为False)是否在结果中保留相等的元素,如果为True,相等的元素也会显示在结果中。

242-2-5、result_names(可选,默认值为('self', 'other'))表示结果中显示的列名。

242-3、功能

        用于对比两个Series对象,找出不同之处。

242-4、返回值

        返回一个DataFrame,其中包含两个Series对比后的差异部分。

242-5、说明

        无

242-6、用法
242-6-1、数据准备
242-6-2、代码示例
# 242、pandas.Series.compare方法
import pandas as pd
# 创建两个Series
s1 = pd.Series([5, 11, 10, 8])
s2 = pd.Series([3, 6, 10, 24])
# 对比两个Series
result = s1.compare(s2)
print("Comparison result:")
print(result, end='\n\n')
242-6-3、结果输出
# 242、pandas.Series.compare方法
# Comparison result:
#    self  other
# 0   5.0    3.0
# 1  11.0    6.0
# 3   8.0   24.0
243、pandas.Series.update方法
243-1、语法
# 243、pandas.Series.update方法
pandas.Series.update(other)
Modify Series in place using values from passed Series.

Uses non-NA values from passed Series to make updates. Aligns on index.

Parameters:
other
Series, or object coercible into Series
243-2、参数

243-2-1、other(必须)表示另一个Series或DataFrame,用于更新当前Series的值,如果other是DataFrame,必须和当前Series具有相同的索引。

243-3、功能

        用于使用另一个Series的值来更新当前Series的值,它直接修改原Series,并且不返回新的对象。

243-4、返回值

        没有返回值,它是一个inplace操作,这意味着它会直接修改调用该方法的Series对象,而不是返回一个新的Series。

243-5、说明

        无

243-6、用法
243-6-1、数据准备
243-6-2、代码示例
# 243、pandas.Series.update方法
# 243-1、基本更新
import pandas as pd
# 创建两个Series
s1 = pd.Series({'a': 3, 'b': 6, 'c': 10, 'd': 24})
s2 = pd.Series({'b': 5, 'd': 11, 'e': 10, 'f': 8})
# 使用s2更新s1
s1.update(s2)
print("Updated Series:")
print(s1, end='\n\n')

# 243-2、带有NaN值的更新
import pandas as pd
# 创建两个Series,其中包含NaN值
s3 = pd.Series({'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': None})
s4 = pd.Series({'b': 20, 'd': None, 'e': 50})
# 使用s4更新s3
s3.update(s4)
print("Updated Series with NaN values:")
print(s3)
243-6-3、结果输出
# 243、pandas.Series.update方法
# 243-1、基本更新
import pandas as pd
# 创建两个Series
s1 = pd.Series({'a': 3, 'b': 6, 'c': 10, 'd': 24})
s2 = pd.Series({'b': 5, 'd': 11, 'e': 10, 'f': 8})
# 使用s2更新s1
s1.update(s2)
print("Updated Series:")
print(s1, end='\n\n')

# 243-2、带有NaN值的更新
import pandas as pd
# 创建两个Series,其中包含NaN值
s3 = pd.Series({'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': None})
s4 = pd.Series({'b': 20, 'd': None, 'e': 50})
# 使用s4更新s3
s3.update(s4)
print("Updated Series with NaN values:")
print(s3)
244、pandas.Series.asfreq方法
244-1、语法
# 244、pandas.Series.asfreq方法
pandas.Series.asfreq(freq, method=None, how=None, normalize=False, fill_value=None)
Convert time series to specified frequency.

Returns the original data conformed to a new index with the specified frequency.

If the index of this Series/DataFrame is a PeriodIndex, the new index is the result of transforming the original index with PeriodIndex.asfreq (so the original index will map one-to-one to the new index).

Otherwise, the new index will be equivalent to pd.date_range(start, end, freq=freq) where start and end are, respectively, the first and last entries in the original index (see pandas.date_range()). The values corresponding to any timesteps in the new index which were not present in the original index will be null (NaN), unless a method for filling such unknowns is provided (see the method parameter below).

The resample() method is more appropriate if an operation on each group of timesteps (such as an aggregate) is necessary to represent the data at the new frequency.

Parameters:
freq
DateOffset or str
Frequency DateOffset or string.

method
{‘backfill’/’bfill’, ‘pad’/’ffill’}, default None
Method to use for filling holes in reindexed Series (note this does not fill NaNs that already were present):

‘pad’ / ‘ffill’: propagate last valid observation forward to next valid

‘backfill’ / ‘bfill’: use NEXT valid observation to fill.

how
{‘start’, ‘end’}, default end
For PeriodIndex only (see PeriodIndex.asfreq).

normalize
bool, default False
Whether to reset output index to midnight.

fill_value
scalar, optional
Value to use for missing values, applied during upsampling (note this does not fill NaNs that already were present).

Returns:
Series/DataFrame
Series/DataFrame object reindexed to the specified frequency.
244-2、参数

244-2-1、freq(必须)字符串或DataOffset对象,表示指定目标频率,常见的频率字符串包括:

  • 'D': 每日
  • 'M': 每月
  • 'A': 每年
  • 'H': 每小时
  • 'T'或'min': 每分钟
  • 'S': 每秒

244-2-2、method(可选,默认值为None)字符串('pad','ffill','backfill','bfill')或None指定当重新采样时如何填充缺失的值。

  • 'pad'或'ffill':用前一个有效值填充缺失值。
  • 'backfill'或'bfill':用下一个有效值填充缺失值。

244-2-3、how(可选,默认值为None)字符串,在较新的版本中已经被移除,可以忽略此参数。

244-2-4、normalize(可选,默认值为False)布尔值,如果为True,则将时间戳规范化到午夜时间。

244-2-5、fill_value(可选,默认值为None)标量值,指定用于填充缺失值的标量值。

244-3、功能

        用于将时间序列重新采样为指定的频率,可能会填充或不填充缺失值,具体取决于method和fill_value参数。

244-4、返回值

        返回一个新的Series,其索引为指定频率的时间戳,数据根据指定的填充方法处理。

244-5、说明

        无

244-6、用法
244-6-1、数据准备
244-6-2、代码示例
# 244、pandas.Series.asfreq方法
import pandas as pd
# 创建一个时间序列
rng = pd.date_range('2024-01-01', periods=6, freq='2D')
ts = pd.Series(range(6), index=rng)
# 将时间序列转换为每日频率,使用前向填充方法
ts_daily_ffill = ts.asfreq('D', method='ffill')
# 将时间序列转换为每日频率,不填充缺失值
ts_daily_no_fill = ts.asfreq('D')
# 将时间序列转换为每日频率,填充缺失值为0
ts_daily_fill_value = ts.asfreq('D', fill_value=0)
print("原始时间序列:")
print(ts)
print("\n转换为每日频率,使用前向填充方法:")
print(ts_daily_ffill)
print("\n转换为每日频率,不填充缺失值:")
print(ts_daily_no_fill)
print("\n转换为每日频率,填充缺失值为0:")
print(ts_daily_fill_value)
244-6-3、结果输出
# 244、pandas.Series.asfreq方法
# 原始时间序列:
# 2024-01-01    0
# 2024-01-03    1
# 2024-01-05    2
# 2024-01-07    3
# 2024-01-09    4
# 2024-01-11    5
# Freq: 2D, dtype: int64
# 
# 转换为每日频率,使用前向填充方法:
# 2024-01-01    0
# 2024-01-02    0
# 2024-01-03    1
# 2024-01-04    1
# 2024-01-05    2
# 2024-01-06    2
# 2024-01-07    3
# 2024-01-08    3
# 2024-01-09    4
# 2024-01-10    4
# 2024-01-11    5
# Freq: D, dtype: int64
# 
# 转换为每日频率,不填充缺失值:
# 2024-01-01    0.0
# 2024-01-02    NaN
# 2024-01-03    1.0
# 2024-01-04    NaN
# 2024-01-05    2.0
# 2024-01-06    NaN
# 2024-01-07    3.0
# 2024-01-08    NaN
# 2024-01-09    4.0
# 2024-01-10    NaN
# 2024-01-11    5.0
# Freq: D, dtype: float64
# 
# 转换为每日频率,填充缺失值为0:
# 2024-01-01    0
# 2024-01-02    0
# 2024-01-03    1
# 2024-01-04    0
# 2024-01-05    2
# 2024-01-06    0
# 2024-01-07    3
# 2024-01-08    0
# 2024-01-09    4
# 2024-01-10    0
# 2024-01-11    5
# Freq: D, dtype: int64
245、pandas.Series.asof方法
245-1、语法
# 245、pandas.Series.asof方法
pandas.Series.asof(where, subset=None)
Return the last row(s) without any NaNs before where.

The last row (for each element in where, if list) without any NaN is taken. In case of a DataFrame, the last row without NaN considering only the subset of columns (if not None)

If there is no good value, NaN is returned for a Series or a Series of NaN values for a DataFrame

Parameters:
wheredate or array-like of dates
Date(s) before which the last row(s) are returned.

subsetstr or array-like of str, default None
For DataFrame, if not None, only use these columns to check for NaNs.

Returns:
scalar, Series, or DataFrame
The return can be:

scalar : when self is a Series and where is a scalar

Series: when self is a Series and where is an array-like, or when self is a DataFrame and where is a scalar

DataFrame : when self is a DataFrame and where is an array-like
245-2、参数

245-2-1、where(必须)单个索引值或索引值的列表,指定要查找的索引位置,如果是单个索引值,则返回该位置之前的最新有效值;如果是索引值的列表,则对每个索引值执行查找操作。

245-2-2、subset(可选,默认值为None)列名或列名的列表(仅用于DataFrame),指定在DataFrame中应用查找操作的列,如果未指定,则默认使用所有列。

245-3、功能

        用于返回给定索引位置之前(或恰好在该位置)的最新有效值,它在处理时间序列数据时特别有用。

245-4、返回值

        返回给定索引位置之前的最新有效值,对于单个索引值,返回一个标量值;对于索引值的列表,返回一个包含查找结果的Series

245-5、说明

        无

245-6、用法
245-6-1、数据准备
245-6-2、代码示例
# 245、pandas.Series.asof方法
import pandas as pd
import numpy as np
# 创建一个包含缺失值的时间序列
dates = pd.date_range('2024-01-01', periods=10, freq='D')
values = [np.nan, 1.2, np.nan, 3.4, np.nan, np.nan, 7.8, np.nan, 9.0, np.nan]
ts = pd.Series(values, index=dates)
# 使用asof方法找到指定日期之前的最新有效值
print(ts.asof('2024-01-05'))
# 使用asof方法填充缺失值
filled_ts = ts.copy()
filled_ts = filled_ts.fillna(method='ffill')
print(filled_ts)
245-6-3、结果输出
# 245、pandas.Series.asof方法
# 3.4
# 2024-01-01    NaN
# 2024-01-02    1.2
# 2024-01-03    1.2
# 2024-01-04    3.4
# 2024-01-05    3.4
# 2024-01-06    3.4
# 2024-01-07    7.8
# 2024-01-08    7.8
# 2024-01-09    9.0
# 2024-01-10    9.0
# Freq: D, dtype: float64

二、推荐阅读

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

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

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

相关文章

WEB前端15-Router路由

Vue2-router路由 在使用Vue.js构建现代单页面应用程序(SPA)时,路由管理是至关重要的一部分。Vue Router 是 Vue.js 官方的路由管理器,它允许你在应用程序中实现基于组件的页面导航。本文将介绍Vue Router的基本概念和用法&#x…

TypeScript 装饰器详解

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,ech…

linux一些基础知识(未完待续)

ldd:输出程序或者库所依赖的共享库列表dmesg -c: 显示系统内核日志/dev/ttyS0: 串口com0/dev/tty: 当前控制台/dev/console:总控制台.local :本地文件 /home/ljg下有多个汉字命名的文件夹,.local不在其中: cat /var…

正则表达式 空格匹配

目录 一. 前提二. 半角空格 匹配半角空格三. ^ 匹配半角空格开头的半角空格四. ^ $ 匹配整行都是半角空格五. ^[ \t]$ 匹配整行都是半角或Tab空格六. \s 匹配所有空格七. [^\s]匹配除了空格之外的所有内容 一. 前提 👇👇👇有如下所示的内容…

【2024蓝桥杯/C++/B组/传送阵】

题目 问题代码 #include<bits/stdc.h> using namespace std;const int N 1e610; int n; int porter[N]; int ans; int sign[N]; bool used;void dfs(int now, int cnt) {if(sign[now] && used){ans max(ans, cnt);return;}if(!sign[now]){cnt, sign[now] 1; …

大数据环境安装Elasticsearch Kibana可视化

1、用yum安装&#xff0c;配置仓库和镜像。 2、用离线软件包&#xff0c;rpm安装。 服务器环境CentOS7.9 因为云安装&#xff0c;配置镜像版本一直没有成功&#xff0c;改为直接下载软件安装。 官方网址&#xff1a;https://www.elastic.co/cn/downloads/elasticsearch 因为要…

提供三方API接口、调用第三方接口API接口、模拟API接口(二)通过token实现防止业务接口的重复调用

背景&#xff1a;紧接着上一篇&#xff0c;API中的签名认证&#xff0c;我通过signature签名机制保证了&#xff0c;参数不被修改&#xff0c;但是如果我们提供给外部的接口&#xff08;此时我们作为第三方&#xff09;&#xff0c;如果被外部恶意重复调用怎么办&#xff1f; 此…

并行编程实战——TBB中的图

一、graph 在TBB框架中&#xff0c;基础的运行框架就是图graph。简单的回顾一下什么是图&#xff1f;图是由顶点和边组成的数学结构&#xff0c;表示对象及其之间的关系。图分为有向图和无向图。在TBB中&#xff0c;其实它的图叫做流图&#xff08;Flow Graph&#xff09;&…

【leetcode详解】直角三角形:用空间换时间(O(m*n*(m+n))>O(m*n))(思路详解)

思路详解&#xff1a; 0. 遍历矩阵grid中每个点&#xff0c;若为“1”&#xff0c;则尝试将其视为直角三角形的直角顶点&#xff0c;关注该点所在横、纵轴&#xff0c;是否有其他点为“1”&#xff08;来与之构成直角边&#xff09; 1. 关于如何计算以该点为直角顶点的直角三…

【Python实战】一键生成 PDF 报告,图文并茂,代码全公开

话接上篇&#xff1a; 自动化处理 PDF 文档&#xff0c;完美实现 WPS 会员功能如何优雅地实现 PDF 去水印&#xff1f; 后台有小伙伴们问&#xff1a;能否基于已有的内容&#xff08;文本、图像等&#xff09;&#xff0c;一键生成 PDF 文档&#xff1f; 或者说&#xff0c;…

性能测试强化训练营*-可看(随意)

一.性能测试:目的/意义&#xff0c;误区 功能测试 VS 性能测试:测试一辆汽车: 功能: 轮子转不转&#xff0c;方向盘转向动不动&#xff0c;点火能不能打开发动机… --使用者&#xff0c;功能能否按照我的想法去正常使用(应用) 性能: 噪音大不大&#xff0c;百公里加速多少秒&a…

会员制重启却陷“过期门”,盒马鲜生扩张背后隐忧重重

在新零售浪潮中&#xff0c;盒马鲜生曾以“新鲜每一刻”为口号&#xff0c;迅速崛起并赢得了众多消费者的青睐。然而&#xff0c;随着其会员制的重启&#xff0c;一系列食品安全问题却如同阴霾般笼罩在这家新零售巨头的上空&#xff0c;让新老会员倍感失望与不安。 近日&#x…

跳表Java

跳表&#xff08;Skip List&#xff09;是一种用于有序数据存储的数据结构&#xff0c;它在链表的基础上增加了多级索引&#xff0c;从而提高了查找、插入和删除操作的效率。跳表的平均时间复杂度为 O ( log ⁡ n ) O(\log n) O(logn)&#xff0c;与平衡二叉搜索树&#xff08…

编程小白如何成为大神?——新生入门指南

编程小白如何成为大神&#xff1f;——新生入门指南 作为一名已经从985高校毕业的研究生&#xff0c;我深刻体会到编程已成为当代大学生的必备技能。无论是为了学术研究&#xff0c;还是未来的职业发展&#xff0c;掌握编程都能为我们提供更多的机会和竞争优势。然而&#xff…

vscode启动不了的问题解决

1、安全模式下启动vscode从中查看日志&#xff1a; code --verbose at Ce.d (C:\Users\yonghu\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\code\electron-main\main.js:116:3783)at Ce.a (C:\Users\yonghu\AppData\Local\Programs\Microsoft VS Code\res…

ts保姆级学习指南

什么是 TypeScript&#xff1f; TypeScript&#xff0c;简称 ts&#xff0c;是 JavaScript 的超集&#xff0c;而且它最大的特点之一就是引入了静态类型支持。这意味着开发者可以在 TypeScript 中定义变量、函数参数等的类型&#xff0c;编译器会在编译时进行类型检查&#xf…

Ubuntu配置Ngbatis学习环境

引言 经过考虑&#xff0c;我感觉与NebulaGraph交互的ORM框架还是Ngbatis好。因为现在这个框架开发的比较完善&#xff0c;而且还在不断更新&#xff0c;社区活跃的用户多。从今日开始学习&#xff0c;首先要配置一下环境。 1.安装maven和jdk 选择的版本是maven3.8和jdk17.以…

iPhone可运行的谷歌Gemma 2 2B模型,性能超GPT-3.5

在数字化浪潮的推动下&#xff0c;人工智能&#xff08;AI&#xff09;正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展&#xff0c;捕捉行业动态&#xff1b;提供深入的新闻解读&#xff0c;助您洞悉技术背后的逻辑&#xff1b;汇聚行业专家的见解&#xff0c;…

关于inet_addr()中的参数不能是 sring类型的 只能是 string类型变量.c_str()

源码展示&#xff1a; extern in_addr_t inet_addr (const char *__cp) __THROW inet_addr中的参数是const char *类型的 定义一个string 类型的ip 使用这个inet_addr()接口 local.sin_addr.s_addr inet_addr(ip_.c_str()); local.sin_addr.s_addr inet_addr(&ip_);…

ELK对业务日志进行收集

ELK对业务日志进行收集 下载httpd 进到文件设置收集httpd的文件进行 设置 编辑内容 用于收集日志的内容 将日志的内容发送到实例当中 input {file{path > /etc/httpd/logs/access_logtype > "access"start_position > "beginning"}file{path &g…