问题标签 [pandas-resample]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
197 浏览

python - 如何按特定行数进行分组或重新采样——使用 Dask (Python)

我正在尝试按任意 x 行数对 Dask 数据帧进行下采样。

例如,如果我使用日期时间作为索引,我可以使用:

但我不想按日期时间重新采样,我想按固定数量的行重新采样......就像:

我做了一堆搜索,发现了这三个旧的 SO 页面:

  • 这个建议:
    • df.groupby(np.arange(len(df))//x),其中 x = 行数。
    • pd.DataFrame(df.values.reshape(-1,2,df.shape[1]).mean(1)),但我很难理解这一点。
    • pd.DataFrame(np.einsum('ijk->ik',df.values.reshape(-1,2,df.shape[1]))/2.0),但我也很难理解这一点。
  • 这又提出了一个建议df.groupby(np.arange(len(df))//x)
  • 这个建议df_sub = df.rolling(x).mean()[::x],但它说这很浪费,而且似乎没有为 Dask 优化。

最好、最快的选择似乎是df.groupby(np.arange(len(df))//x),它在 Pandas 中运行良好。但是,当我在 Dask 中尝试时,我得到:ValueError: Grouper and axis must be same length

如何使用 Dask 按行数重新采样?

我有数据框:

  • 标准索引(例如 1,2,3,4,5...,n)
  • 我可能会用作索引的日期时间值(尽管我不一定想要)
  • 非标准长度(即其中一些具有偶数行,而一些具有奇数)。
0 投票
2 回答
492 浏览

python - Pandas 上采样不包括一年中最后一天的 23 小时

我有一个带有日期|天气信息的时间序列数据框,如下所示:

在此处输入图像描述

我正在尝试使用以下方法将其上采样为每小时数据: weather.resample('H').pad()

我预计会在 24 个间隔 * 365 天内看到 8760 个条目。但是,它仅返回 8737,而 12 月 31 日的最后 23 个间隔缺失。我需要做一些特别的事情来获得最后一天的 24 个间隔吗?

提前致谢。

0 投票
1 回答
359 浏览

python - 每月到每日值

我有一个月值,我想将其更改为每日数据;

但希望它是每天的,例如。每个月值代表该月内的每日值。

例如

非常感谢任何帮助!

0 投票
1 回答
57 浏览

python - 缺少日期值

我有一个条目表,如下所示。该表缺少日期条目,我想用月末缺少的日期值填充这些条目。对于第一列,添加的缺失日期条目行应填充相同的值,对于值列,我希望它们填充为 0。

'''

预期产出

我尝试将重采样与数据框一起使用,但没有得到所需的输出。df = df.set_index('Date').resample('M').ffill().reset_index()

0 投票
0 回答
118 浏览

python-3.x - 将实时流数据重新采样到 15m 时出错

我在将实时流数据重新采样到 15M 时间范围时遇到了多个错误消息,如果我删除我们删除重采样代码,编程工作正常。

我已要求对收到的每 15M 编译和基本实时数据创建一个 OHLC 重采样。

此外,我们可以在一个 excel 和/或不将数据保存到任何 csv/xls 的情况下做同样的事情。

感谢您的提前和对不起我的编码技巧。

0 投票
1 回答
71 浏览

pandas - 如何包装熊猫重采样方法?

我有一个反复出现的pandas问题,我想通过包装.resample方法来解决。我就是想不通,怎么弄。

背景(非必要)

我有时区感知时间序列,例如:

我想重新采样到几个小时。如果我只使用s.resample('H').sum(),最后 23 小时将被丢弃(也在这个问题中解决):

当前的“解决方案”

我编写了一个自定义resample2函数来纠正这个问题:

这有效:

但有两个问题:

  • 用法与标准用法(resample2(s, 'H', np.sum)vss.resample('H').sum()
  • 我无法使用以前可以使用的所有功能。例如,resample2(s, 'H', s.resample.ffill)给出一个错误。

问题

有没有办法包装DataFrame.resampleSeries.resample方法的功能,以便它们可以像往常一样继续工作,只需在我的函数中显示“在重采样前追加一行,重采样后删除最后一行”resample2功能?

0 投票
0 回答
55 浏览

python - 如何根据 Datetimeindex 在 Pandas 数据框中按月重新采样

输出:

当我想获得每月的销售额平均值时,添加了

输出:

我可以理解我的订单日期列不在时间戳格式中。我不知道如何转换它。

有什么想法吗?

0 投票
2 回答
720 浏览

python - Python - 在 Pandas 中平均重采样的最佳方法

我有一个数据框。这是一个非常有限的例子。

这是用于测试的代码

我想要的是每个用户的平均值,除以一个时间段内的用户数。

让我们以 22:00:01-22:30:00 作为我们的时间段。

我们这里有 2 个用户(123、313),每个用户都有两个时间戳。所以我想要 [ (5+4)/2 + (1+2)/2 ] / 2 = [ 4.5 + 1.5 ] / = 3 作为我的返回值。

现在我们取 22:30:01 到 23:00:00。我们这里又有 2 个用户(123、555),它们的时间戳是可变的。所以我想要 [ (2+2)/2 + (5)/1 ] / 2 = [ 2 + 5 ] / 2 = 3.5

我认为应该有一种有效的方法来通过重采样来做到这一点。

例如,当我只计算我能做的平均值时

然后,这给了我 30 分钟内所有得分指标的平均值。

我已经尝试了一些事情,但是对于进行采样似乎没有任何效果,但是首先在每个用户的基础上进行计算。

有没有方便的方法可以像这样简单的语句来做到这一点?我是否需要手动分割时间序列,然后分段计算平均值等?

谢谢!

0 投票
3 回答
140 浏览

python - 在 Python 中的时间范围内重新采样

我想通过在 say to的时间范围内df为所有列创建月度数据并用 填充缺失值来重新采样。02019-01-012019-12-31

df

预期输出:

我遇到了一些方法,比如multiindexand resamplemultiindex似乎是通用的,但是当涉及到不同级别的索引时会变得有点复杂;我不确定是否resample允许我将效果扩展到指定的时间范围。最好的方法是什么?

0 投票
1 回答
250 浏览

python - Pandas:为每个组重新采样每小时数据

我有一个数据框,其中包含一天中不同时间收到的车辆的 gps 位置。对于每辆车,我想重新采样每小时数据,以便我获得一天中每个小时的中值报告(根据时间戳)。对于没有相应行的小时,我想要一个空白行。我正在使用以下代码:

由于我的数据框有数百万个 id,因此我需要花费大量时间来迭代所有这些。有没有一种有效的方法来做到这一点?

Pandas 在 Groupby 中重新索引日期不同,我每小时有多行,除了一些小时根本没有行。