当前位置: 首页 > 知识库问答 >
问题:

如何重新取样(上采样)我的熊猫数据框?

孙玮
2023-03-14

我有一个小熊猫DataFrame我想重新取样,我希望你能帮我:)

我不能给你看,因为它是保密的,但我可以给你描述一个更简单的版本。

它有4列:

-日期(YYYY-MM-DD格式)

-国家

-数量

-频率

下面是我想做的:

根据行的不同,频率为每年或每月如果恰好是每月,则无需执行任何操作。

但如果是每年一次,我想将其改为每月一次,并插入11个新行,以便在考虑的12行(现有行和11个新行)中,国家将保持不变(因此相同的国家名称重复了12次),金额将为amount/12(也重复了12次,你明白了),每行的日期将增加1个月。

我真希望有人能帮我!

提前感谢,,

亚历克斯

编辑:

我已经更改日期列作为索引使用

df.set_index(日期,inplace=True)

然而,我真的不知道如何使用重采样功能来实现我的目的。。。

共有1个答案

海岳
2023-03-14

首先确保您的数据帧具有类型为DateTimeIndex的索引。

然后使用重新取样函数对数据帧进行上采样(较高频率)或下采样(较低频率)。然后应用聚合器(例如)来聚合新采样频率上的值。

请参见此处的重新采样文档:https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.resample.html

 类似资料:
  • 问题内容: 给定下面的熊猫DataFrame: 我想对数据重新采样以每小时计数一次,同时按位置分组以生成如下所示的数据框: 我尝试了resample()和groupby()的各种组合,但是没有运气。我将如何处理? 问题答案: 在我的原始帖子中,我建议使用。如今,使用代替。语法在很大程度上是相同的,但现在已不支持。 此外,虽然只能按DatetimeIndex分组,但可以按日期时间 列进行分组,而您可

  • 问题内容: 为创建这个问题的重复而道歉。我有一个数据框,其形状大致如下图所示: 返回: 我将需要重新采样以得出每日滚动平均值,即应用。 我尝试了两种方法: 1 -拆垛和堆积,建议在这里 这返回一个错误 2 -使用,建议在这里 这不会返回错误,但似乎并没有适当地对df重新采样/分组。结果似乎包含每小时数据点,而不是每天: 问题答案: 首先让我们定义一个重采样函数: 然后,我们对job_id进行分组并

  • 主要内容:降采样,升采样,频率转换,插值处理数据重采样是将时间序列从一个频率转换至另一个频率的过程,它主要有两种实现方式,分别是降采样和升采样,降采样指将高频率的数据转换为低频率,升采样则与其恰好相反,说明如下: 方法 说明 降采样 将高频率(间隔短)数据转换为低频率(间隔长)。 升采样 将低频率数据转换为高频率。 Pandas 提供了 resample() 函数来实现数据的重采样。 降采样 通过 resample() 函数完成数据的降采样

  • 问题内容: 根据此处的熊猫文档:Docs 和例子: 重采样后: 我认为,重新采样后,垃圾箱应如下所示: 我在这一步上正确吗? 所以在我认为应该是这样的: 我只是不明白结果如何: (因为在这种情况下,2000年1月1日00:00:00不能是任何垃圾箱的任何右边缘)。 (标签2000-01-01 00:09:00甚至在原始系列中也不存在。 问题答案: 简短的答案: 如果您使用,那么您将获得期望的结果:

  • 问题内容: 我正在尝试在Pandas DataFrame中每天对一些数据进行重新采样。我是熊猫的新手,也许我需要先格式化日期和时间,然后才能执行此操作,但是我找不到关于如何使用导入的时间序列数据的正确方法的良好教程。我发现的一切都是自动从Yahoo或Quandl导入数据。 这是我的DataFrame中的内容:dataframe 段屏幕截图 这是我用来创建DataFrame的代码: 有人可以帮助我了

  • 问题内容: 如何将大熊猫中的时间序列重新采样为每周从任意一天开始的每周频率?我看到有一个可选的关键字库,但它仅适用于少于一天的时间间隔。 问题答案: 您可以将锚定的偏移量传递给,以及它们涵盖此情况的其他选项。 例如,星期一的每周频率: