当前位置: 首页 > 面试题库 >

熊猫每月滚动作业

穆阳嘉
2023-03-14
问题内容

我最终在写出这个问题的时候就弄清楚了,所以无论如何我都会发布并回答我自己的问题,以防别人需要一点帮助。

问题

假设我们有一个DataFramedf包含该数据。

import pandas as pd
from io import StringIO

data = StringIO(
"""\
date          spendings  category
2014-03-25    10         A
2014-04-05    20         A
2014-04-15    10         A
2014-04-25    10         B
2014-05-05    10         B
2014-05-15    10         A
2014-05-25    10         A
"""
)

df = pd.read_csv(data,sep="\s+",parse_dates=True,index_col="date")

目标

对于每一行,将 其一个月*spendings以内的每一行的总和相加,最好使用一种非常干净的语法。 *DataFrame.rolling

我尝试过的

df = df.rolling("M").sum()

但这引发了异常

ValueError: <MonthEnd> is a non-fixed frequency

版: pandas==0.19.2


问题答案:

使用"D"偏移量而不是"M"专门使用"30D"30天或大约一个月。

df = df.rolling("30D").sum()

最初,我凭直觉跳了起来,使用"M"了一个月,但现在很清楚为什么不起作用。



 类似资料:
  • 我在研究这个问题时发现的几乎所有内容都是针对Log4J1.x的,并讨论了一个似乎在2.0中不存在的datePattern参数。 下面是我的log4j2.xml文件: 我正在将信息和以上内容写入日志文件,并将调试写入控制台(目前)。这些文件被写得很好,但它们似乎每天都在滚动(这似乎是默认的)。

  • 我有一个这样的数据帧: 我试图了解如何应用自定义滚动函数。我尝试过这样做: 但这给了我原来的DataFrame回来: 如果我有一个不同的数据帧,如下所示: 同样的滚动应用似乎工作: 为什么这对第一个数据帧不起作用? 熊猫版本:0.20。2. Python版本:2.7.10 使现代化 所以,我意识到的列是对象类型的,而lambda函数的输出是整数。的列都是整数列。我假设这就是应用程序不起作用的原因。

  • 我需要得到df的滚动第二大值。 以获得最大的价值 当我尝试这个时,python抛出了一个错误 这是虫子吗?我还能用什么性能好的?

  • 上面的问题是假设一周有7天。它试图计算每周有7天。我的数据是由(工作日)每日价格组成的,有时可能会因为市场因假期关闭而错过一周的几天。 我的问题是如何找到给定日期的一个月中的一周。注:我突出了“给定日期”,因为这个过程每天都在处理,所以任何展望到月底的答案都可能不起作用。 我的尝试是向前看,但不是最佳的: 如果你发现这个问题有任何问题,或者它是重复的,请告诉我。我已经寻找了一段时间的解决办法。

  • 问题内容: 目标:每个月末所有报表的滚动/运行总计。 代码: 电流输出: 所需的输出: 问题答案: 听起来好像您想要运行总计。您可以为此使用分析功能。

  • 问题内容: 我的动机是利用熊猫功能来进行滚动多因素回归(这个问题是 不是 关于滚动多因素回归)。我希望我可以在a之后使用,并使用所得结果提取ndarray并执行必要的矩阵乘法。那样行不通。 这是我发现的: 对象是什么样的: 矩阵乘法的行为正常: 使用Apply执行逐行点积的行为符合预期: Groupby-> Apply的行为符合我的预期: 但是当我跑步时: 我得到: AttributeError: