pandas 不常用函数说明

- get_level_values

用法:

Index.get_level_values(level)

返回请求级别的值索引。

这主要用于从 MultiIndex 获取单个级别的值,但在 Index 上也提供了兼容性。

参数:
level:整数或字符串
它是整数位置或级别的名称。

返回:
index

调用对象,因为索引中只有一层。

注意:
对于索引,级别应为 0,因为没有多个级别。

例子:

>>> idx = pd.Index(list('abc'))
>>> idx
Index(['a', 'b', 'c'], dtype='object')

通过提供 level 作为整数来获取级别值:

>>> idx.get_level_values(0)
Index(['a', 'b', 'c'], dtype='object')

- unstack

statck(堆叠):该操作会“旋转”或将列中的数据透视到行,即将原来的列转成最内层的行索引
unstack(拆堆):该操作会将行中的数据透视到列,即将最内层的行索引变成列

例子:

data:

number	   one two three
state			
Ohio	    0	1	2
Colorado	3	4	5
  1. stack
result = data.stack()

result:

state     number
Ohio      one       0
          two       1
          three     2
Colorado  one       3
          two       4
          three     5
dtype: int32
  1. unstack
result.unstack()

输出结果:

number	   one two three
state			
Ohio	    0	1	2
Colorado	3	4	5

resample

  • resample()进行重采样。

  • 重采样(Resampling)指的是把时间序列的频度变为另一个频度的过程。把高频度的数据变为低频度叫做降采样(downsampling),把低频度变为高频度叫做升采样(upsampling)

resample参数如下:

resample(rule, how=None, axis=0, fill_method=None, closed=None, label=None, convention='start',kind=None, loffset=None, limit=None, base=0)

降采样
考虑因素:

各区间哪边是闭合的(参数:closed)

如何标记各聚合面元,用区间的开头还是末尾(参数:label)

freq取值如下:
在这里插入图片描述

In [235]: ts.resample('5min').sum()
Out[235]:
2018-08-03 00:00:00    10
2018-08-03 00:05:00    35
2018-08-03 00:10:00    21
Freq: 5T, dtype: int32
<think>嗯,用户想了解Pandas中与累计计算相关的函数,特别是它们的使用方法和示例。让我先回忆一下Pandas常用的累计函数有哪些。首先,cumsum()肯定是用来求累计和的,cumprod()是累计乘积,cummax()和cummin()应该是累计最大值和最小值,还有cumcount()可能用于计数?或者是是cumcount()?对,cumcount()可能是标准的累计函数,可能用户指的是其他函数。 然后,我需要确认这些函数的正确用法。比如,cumsum()可以按行或列进行累计,默认是按列(axis=0),也就是沿着行的方向,逐列计算。比如,每行的当前值加上之前所有行的值。而如果设置axis=1,则是按行进行,跨列累计。例如,在数据框中,每一行的元素从左到右累计求和。 接下来,用户可能需要示例代码。比如,创建一个DataFrame,然后应用这些函数。比如,创建一个包含销售额的数据框,然后计算每个月的累计销售额,这时候用cumsum()。或者计算每个月的累计最大值,比如cummax(),这样可以看到到当前月份为止的最大值。 另外,用户提到的引用中提到了shift()函数,这可能和同比、环比有关。比如,使用shift(periods=1)来获取前一期的数据,然后计算变化率,这样就可以得到环比增长。而同比可能需要shift(periods=12)(假设是按月数据)。这时候需要结合累计函数和其他函数一起使用。 还有一个点是cumsum的应用场景,比如累计求和、计算移动平均、或者累计统计指标。比如在金融分析中,计算累计收益,或者在库存管理中计算累计库存变化。这时候需要结合具体的案例来说明。 可能用户还会想知道如何处理分组后的累计计算,比如使用groupby()后再应用cumsum(),这样可以在每个分组内进行累计。例如,每个部门的累计销售额,这时候需要结合groupby和cumsum()。 另外,需要注意这些函数的参数,比如是否跳过空值,或者如何处理非数值型数据。例如,cumsum()会自动忽略NaN值吗?或者需要先填充NaN?这可能需要在示例中说明。 可能用户提到的引用里还提到了merge()函数,但累计函数主要和cum系列函数相关,过可能用户想结合多个函数一起使用,比如先合并数据再进行累计计算。这时候可能需要给出一个综合的例子。 现在,我需要组织这些信息,按照用户的要求,分点说明每个函数的使用方法,并提供示例代码。同时,确保代码正确,使用中文注释,并且符合用户给出的格式要求,比如行内公式用$...$,独立公式用$$...$$,过在这个问题中可能涉及数学公式较少,但如果有的话需要正确应用。 还要注意生成相关问题,比如如何结合groupby使用累计函数,或者如何处理缺失值,或者如何计算移动累计等。这样用户可以有进一步的问题参考。 最后,确保引用正确的参考文献,比如在回答中提到的累计求和引用[3],shift函数引用[2],合并数据引用[2]等。需要检查引用的对应关系是否正确。</think>### Pandas累计函数使用详解 Pandas提供了多种累计计算函数,用于对数据进行累计统计。以下为常用函数及示例: --- #### 一、基础累计函数 1. **`cumsum()`**:累计求和 计算列或行的累计和,默认按列方向计算。 ```python import pandas as pd df = pd.DataFrame({'销售额': [100, 200, 150, 300]}) df['累计销售额'] = df['销售额'].cumsum() ``` 输出: ``` 销售额 累计销售额 0 100 100 1 200 300 2 150 450 3 300 750 ``` 2. **`cumprod()`**:累计乘积 计算列或行的累计乘积。 ```python df['因子增长'] = pd.Series([1.1, 1.2, 0.9, 1.3]).cumprod() ``` 3. **`cummax()` / `cummin()`**:累计最大值/最小值 记录当前行及之前所有行的最大值或最小值。 ```python df['历史最高销售额'] = df['销售额'].cummax() ``` --- #### 二、分组累计计算 结合`groupby`对分组数据做累计统计: ```python df = pd.DataFrame({ '部门': ['A', 'A', 'B', 'B'], '销售额': [100, 200, 150, 300] }) df['部门累计'] = df.groupby('部门')['销售额'].cumsum() ``` 输出: ``` 部门 销售额 部门累计 0 A 100 100 1 A 200 300 2 B 150 150 3 B 300 450 ``` --- #### 三、时间序列应用 结合`shift()`计算同比/环比增长: 1. **环比增长** ```python df['环比增长'] = df['销售额'] / df['销售额'].shift(1) - 1 ``` 2. **同比增长**(假设数据按月排列) ```python df['同比增长'] = df['销售额'] / df['销售额'].shift(12) - 1 ``` --- #### 四、综合案例:计算移动累计平均 ```python # 计算过去3期的移动平均 df['3期移动平均'] = df['销售额'].rolling(window=3).mean() ``` --- ### 引用说明 - `cumsum()`常用于累计收益分析[^3]。 - `shift()`结合累计计算可实现时间序列对比[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐大帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值