问题标签 [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 回答
162 浏览

python - 使用 .resample() 和 .groupby() 问题的 pandas 加权平均

尝试使用 .resample() 方法和 .apply() 计算交易量加权平均价格时遇到问题。这是设置。我有一个名为 All 的数据框,其中包含以下信息:

数据框有一个日期时间索引,因此我可以使用 ^resample 方法对每日频率的数据进行重新采样。现在,我想使用 apply() 和 np.average() 计算成交量加权平均价格

但是,这会导致以下错误:

当绕过 .resample() 并使用 .groupby() 作为替代方案时,它确实有效。但是,我需要执行其他步骤来处理日期,我真的不想这样做。

任何人都可以使用 resample() 帮助我使用正确的语法。我不明白为什么 resample() 在使用 apply() 时会创建一个 Series 对象

提前谢谢了。

0 投票
3 回答
616 浏览

python - Pandas:重新采样数据帧以匹配不同数据帧的 DatetimeIndex

我有两个单独的时间序列pandas.dataframe,第一个 -series1条目较少,并且与第二个不同的开始数据时间 - series2

如何重新采样 series2 以匹配DatetimeIndexof series1

0 投票
1 回答
63 浏览

python - 重新采样时间序列 - Python

我正在尝试重新采样时间序列。我似乎无法让它工作。基于其他示例,我不明白为什么这不返回时间序列:

出去:

预期输出:

0 投票
1 回答
68 浏览

python - 我可以动态选择应用于 pandas Resampler 对象的方法吗?

我正在尝试创建一个对时间序列数据重新采样的函数pandas。我希望可以选择根据我发送的数据类型来指定发生的聚合类型(即,对于某些数据,取每个 bin 的总和是合适的,而对于其他数据,则需要取平均值, ETC。)。例如像这样的数据:

我可以有这样的功能:

对于少量的聚合方法,这很好,但如果我想从所有可能的选项中进行选择,这似乎很乏味。

我希望用来getattr实现类似这篇文章的内容(在“投入使用:泛化方法调用”下)。但是,我找不到这样做的方法:

我明白为什么process2失败(调用r.foo()查找 的方法foo()r而不是变量foo)。但我不认为我明白为什么会process3失败。

我知道另一种方法是将函数传递给参数method,然后将apply这些函数传递给r。我的倾向是这样效率会降低?而且它仍然不允许我直接访问内置的 Resample 方法。

有没有一种可行的、更简洁的方法来实现这一目标?谢谢!

0 投票
0 回答
33 浏览

pandas - Pandas 按一列的日期范围分组并将值应用于第二列的列表

我已将索引设置为日期。我可以按月对日期进行分组并应用聚合函数,但我不能按月对日期进行分组并应用(列出)另一列(名为“Stuff”的列)的值:

这会显示一条错误消息:

0 投票
1 回答
316 浏览

python - Python Datetime 重采样结果突然出现 NaN 值

我试图将我的值重新采样到小时。但是,由于我已经更改了 csv 文件中日期的格式,因为自动交换了低数字的月份和日期(2003-04-01 突然变成了 2003-01-04)。现在日期格式很好(在 Python 中显示 csv 文件时),但是在使用重新采样时,这些值出现在 NaN 值中。

df = pd.read_csv(r'C:\Users\water_level.csv',parse_dates=[0],index_col=0,decimal=",", delimiter=';')

我的数据样本: 以时间为索引的原始数据

之后:即使时间是日期时间,它也会将 99% 的数据显示为 NaN 值(每天显示一个值) 每小时 重新采样后具有 NaN 值的数据

当我对日值使用 resample 时,所有值都回来了。所以看来时间有问题。当我一开始使用格式时,出现“格式不适合”错误。我之前尝试过一种不同的方式(不确定有什么不同),但重新采样每小时工作一次。

我需要更改什么才能再次使用 resample 小时?

0 投票
2 回答
267 浏览

python - 熊猫时间序列重采样+线性调整值

使用 python 和 pandas,我如何将时间序列重新采样到甚至 5 分钟的间隔(偏移量=整个小时的零分钟),同时还线性调整值?

因此,我想把这个:

进入这个:

请注意“值”列是如何调整的。

  • 为简单起见,我选择的值正好是 2 * 分钟数。
  • 然而,在现实生活中,这些价值观并不是那么完美。有时在两个偶数 5 分钟间隔之间会存在多个值,有时在两个“真实”值之间存在不止一个 5 分钟间隔,因此在重新采样时,我需要对每个偶数 5 分钟间隔,找到“真实”值" 甚至 5 分钟间隔之前和之后的值,并从中计算线性插值。

PS。

互联网上到处都有很多关于此的信息,但我仍然无法找到一个可以完成我想做的函数(sum、max、mean 等,或编写我自己的函数)。

0 投票
2 回答
645 浏览

python - 是否有函数可以获取 pandas 数据帧时间序列上两个值之间的差异?

我在NYT covid 数据集中乱搞,该数据集每天都有每个县的 covid 病例总数。

我想找出每天的病例差异,所以理论上我可以得到每天的新病例数,而不是总病例数。采用滚动平均值,或使用平均值/总和/等每 2 天重新采样一次都可以正常工作。只是减去这让我很头疼。

试过的方法:

  • df.resample('2d').diff()
    • 'DatetimeIndexResampler' 对象没有属性 'diff'

  • df.resample('1d').agg(np.subtract)
    • ufunc() 缺少 2 个必需的位置参数中的 1 个

  • df.rolling(2).diff()
    • “滚动”对象没有属性“差异”

  • df.rolling('2').agg(np.subtract)
    • ufunc() 缺少 2 个必需的位置参数中的 1 个

样本数据:

在此处输入图像描述

所需的样本输出:

在此处输入图像描述

从原始 NYT 数据集重新创建样本数据:

任何帮助将不胜感激!想学习如何手动/通过函数执行此操作,而不是查找“新案例”数据集,因为我将在不久的将来大量使用时间序列。

0 投票
0 回答
23 浏览

python - 如何重新采样刻度数据以获取 ohlc 和音量值

我有一个这样的数据框

此数据框正在获取刻度数据并不断更新

我想在最后 1 分钟重新采样这个数据帧以获得

和卷 = 最后(卷)

我正在使用 resample 函数,但出现错误 DataError: No numeric types to aggregate

有人可以帮助如何重新采样

0 投票
1 回答
51 浏览

python - 将 2 个不同年份的 .resample(D).size() 绘制到一张图表中?

我有一些从 2019 年到 2020 年的数据,从每年的 3 月到 5 月底。

我已经做到了日期时间

并按年份分隔数据

如果我每年单独运行重新采样

我输出所需的图表

在此处输入图像描述

在此处输入图像描述

但是我希望能够将两个图表一起比较,当我尝试同时运行它们时,这是绘制的图表

在此处输入图像描述

我意识到 resample(D) 仍然查看年份,因此组合图表是正确的,但我想根据 Day 将它们一起比较。

关于如何完成这项工作的任何建议?

编辑:这是原始数据的 .head(20) (它没有显示 2020 年的数据,因为它太大了)

如上所述,这是按年份划分的数据帧的 .head(10)