问题标签 [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 投票
3 回答
257 浏览

python - 如何以较低的频率重新采样 Pandas DataFrame 并阻止它创建 NaN?

我有一个带有 DateTime 索引的 Pandas 数据框。它具有以 1 分钟间隔采样的一些股票的收盘价。我想重新采样这个数据帧并以 5 分钟的间隔获取它,就好像它是以这种方式收集的一样。例如:

我需要得到类似的东西

自然的方法是使用 Pandasresample()asfreq()使用 Pandas。他们确实生产了我需要的东西,但是也有一些不受欢迎的输出。我的样本从给定工作日的下午 4 点到次日上午 9:30 没有观察到,因为在这些时间段内交易暂停。这些提到的方法最终会在实际上没有数据可重采样的这些时期内用 NaN 完成数据帧。我可以使用任何选项来避免这种行为吗?从下午 4:05 到第二天早上 9:25,我得到了很多 NaN,仅此而已!

我快速而肮脏的解决方案如下:

尽管我相信这是一个快速而优雅的解决方案,但我会假设它resample()有一些选项可以执行此任务。有任何想法吗?非常感谢!


编辑:在关于不需要的输出的评论之后,我添加了以下代码来展示问题:

所有这些 NaN 都应该是最终结果的一部分。他们在那里只是因为没有交易时间。我想避免这种情况。

0 投票
1 回答
698 浏览

python-3.x - 熊猫每天在特定时间范围内重新采样

我在 Python3 上编写了以下代码,用于重新采样时间序列数据。我的要求是仅在每天上午 9:00 到下午 4:00 之间重新采样数据。但是,我不能通过使用“按日期分组”对完整数据进行分组并随后合并结果来单独进行重新采样操作,因为我也想在这里使用 ffill()。

上面提到的代码工作正常,但有时它会在数据更多时出现“无法分配具有形状的数组......”之类的错误。实际上,原始数据帧仅包含从上午 9:00 到下午 4:00 的数据,但是在重新采样时,它还会添加从下午 4:01 到第二天上午 8:59 的数据,因此它需要更多内存。

那么有没有更简单/更快的方法来提高内存效率?

0 投票
3 回答
162 浏览

python - 熊猫系列重采样

我有以下熊猫系列:

这产生以下数组:

如果我想重新采样,我该怎么做?我阅读了文档,它建议这样做:

但它不起作用。有任何想法吗?

谢谢你。

编辑:

我希望我的最终向量具有双倍的频率。所以是这样的:

0 投票
1 回答
110 浏览

python - 当 DatetimeIndex 是一年中的最后一天时,Pandas DataFrame 重新采样为月份

我有一个 DataFrame,其 DatetimeIndex 标记为一年中的最后一天(ej 2020-12-31、2021-12-31 等)。我需要重新采样才能将数据框扩展到几个月(ej 2020-01-31、2020-02-29 等)。当我使用 resample 函数时,它将始终从开始日期开始,而不是当年的第一天(ej 2020-12-31、2021-01-31)。

输入:

输出:

谢谢。

0 投票
1 回答
44 浏览

pandas - Pandas resample is jumbling date order

I'm trying to resample some tick data I have into 1 minute blocks. The code appears to work fine but when I look into the resulting dataframe it is changing the order of the dates incorrectly. Below is what it looks like pre resample:

As you can see the date starts at 5pm on the 30th of June. Then I use this code:

And I get the following:

It seems to want to start from midnight on the 1st of July. But I've tried sorting the index and it still is not changing.

Also, the datetime index seems to add lots more dates outside the ones that were originally in the dataframe and plonks them in the middle of the resampled one.

Any help would be great. Apologies if I've set this out poorly

0 投票
2 回答
250 浏览

python - 扩展日期时间列以包含所有数据行 - 熊猫

我有数据集,其中包含在 42 小时内模糊更新的预测数据。这是一个示例:

问题是 df['forecastTime'] 和 df['endtime] 的小时数之间的差距。我尝试使用我有限的 pandas 知识对数据进行分组和重新采样,但是由于日期重复,我无法获得日期时间索引。

最终,我的目标是扩展数据框,以便数据框中原始小时数之间的小时数有自己的行,直到结束时间...

所需输出的示例:

注意对于第一个区域, df['forecastTime'] = '2010-01-01 09:00:00' 和 df['forecastTime'] = '2010-01-01 15:00:00' 之间的小时数应该是自己的行。本质上,我希望通过上采样来填补缺失的时间。


编辑: - 原始数据框

0 投票
0 回答
207 浏览

python - Resample Monthly to Weekly 不会从星期一开始一周?

我有一个数据框df:

我想将其重新采样为每周并将一年中的一周作为新列。一个月的每一周都应该从 A 列中获得等量的月值。

结果是:

现在我重新采样:

结果是:

问题:为什么第一周从 2020-01-03 开始​​?那是星期五,不是星期一。我理解 week_of_year = 53,因为 2019 年 12 月底是星期一,这是 ISO 标准。

但是我的下周不应该从 2020-01-06 == 星期一开始吗?

0 投票
1 回答
1147 浏览

python-3.x - 熊猫重采样填充 NaN

我有这个df:

不,我想重新采样。使用 .resample 如下:

我想要 1 分钟内的 df - 间隔。对于每个间隔,我想与如下行匹配:列表:如果状态=在线:间隔的最后一个条目,否则为“0”;Power: if status = online: 区间的平均值 else '0'; 能量:如果状态=在线:间隔的最后一个条目否则'0; 状态:区间的最后状态;

如果df中没有数据,我如何填充.resample输出的NaN值?例如一个区间没有数据,那么df应该如下填充Power = 0; 能量 = 0;状态 = 离线;...

我尝试过这样的事情:

并得到:

预期结果:

0 投票
2 回答
26 浏览

pandas - 根据年份添加行

我的数据框如下所示:

我喜欢将每年的股息相加并显示如下:

任何帮助将不胜感激。非常感谢!

0 投票
1 回答
21 浏览

pandas - 输出每年的最后一行

我的数据框如下所示:

我喜欢输出每年最后一天的收盘价。我尝试了以下方法:

我希望输出为:

任何帮助将不胜感激。非常感谢!