问题标签 [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.
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)
- 我可能会用作索引的日期时间值(尽管我不一定想要)
- 非标准长度(即其中一些具有偶数行,而一些具有奇数)。
python - 每月到每日值
我有一个月值,我想将其更改为每日数据;
但希望它是每天的,例如。每个月值代表该月内的每日值。
例如
非常感谢任何帮助!
python - 缺少日期值
我有一个条目表,如下所示。该表缺少日期条目,我想用月末缺少的日期值填充这些条目。对于第一列,添加的缺失日期条目行应填充相同的值,对于值列,我希望它们填充为 0。
'''
预期产出
我尝试将重采样与数据框一起使用,但没有得到所需的输出。df = df.set_index('Date').resample('M').ffill().reset_index()
python-3.x - 将实时流数据重新采样到 15m 时出错
我在将实时流数据重新采样到 15M 时间范围时遇到了多个错误消息,如果我删除我们删除重采样代码,编程工作正常。
我已要求对收到的每 15M 编译和基本实时数据创建一个 OHLC 重采样。
此外,我们可以在一个 excel 和/或不将数据保存到任何 csv/xls 的情况下做同样的事情。
感谢您的提前和对不起我的编码技巧。
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.resample
和Series.resample
方法的功能,以便它们可以像往常一样继续工作,只需在我的函数中显示“在重采样前追加一行,重采样后删除最后一行”resample2
功能?
python - 如何根据 Datetimeindex 在 Pandas 数据框中按月重新采样
输出:
当我想获得每月的销售额平均值时,添加了
输出:
我可以理解我的订单日期列不在时间戳格式中。我不知道如何转换它。
有什么想法吗?
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 分钟内所有得分指标的平均值。
我已经尝试了一些事情,但是对于进行采样似乎没有任何效果,但是首先在每个用户的基础上进行计算。
有没有方便的方法可以像这样简单的语句来做到这一点?我是否需要手动分割时间序列,然后分段计算平均值等?
谢谢!
python - 在 Python 中的时间范围内重新采样
我想通过在 say to的时间范围内df
为所有列创建月度数据并用 填充缺失值来重新采样。0
2019-01-01
2019-12-31
df
:
预期输出:
我遇到了一些方法,比如multiindex
and resample
。multiindex
似乎是通用的,但是当涉及到不同级别的索引时会变得有点复杂;我不确定是否resample
允许我将效果扩展到指定的时间范围。最好的方法是什么?
python - Pandas:为每个组重新采样每小时数据
我有一个数据框,其中包含一天中不同时间收到的车辆的 gps 位置。对于每辆车,我想重新采样每小时数据,以便我获得一天中每个小时的中值报告(根据时间戳)。对于没有相应行的小时,我想要一个空白行。我正在使用以下代码:
由于我的数据框有数百万个 id,因此我需要花费大量时间来迭代所有这些。有没有一种有效的方法来做到这一点?
与Pandas 在 Groupby 中重新索引日期不同,我每小时有多行,除了一些小时根本没有行。