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

python-3.x - 如何以给定的频率计算两个日期之间的样本数

datetime和和给定频率字符串有两个实例(例如: M, Q, W, B, W-MON, D, A, Y, ...)。查找这两个日期之间的样本数量的最有效方法是什么?我可以通过以下方式来实现它,这对我来说实例化 pandas 数据框来获取它看起来效率低下:

0 投票
0 回答
36 浏览

python-3.x - 如何使用 groupby 和重新采样的数据创建一周中的几天的热图

我有很多观察数据。每个观察都有它出现的星期几(1=星期一,2=星期二等)和它出现的时间(例如,“12:00”、“14:30”、“18:26”等)。

日期 时间 day_of_week x 列 y 列
2020-06-04 12:00 1 价值1 价值1
2020-06-04 14:30 1 价值2 价值2

我用它制作了另一张桌子df.groupby('day_of_week').resample('2h').size(),结果是这样的:

时间\day_of_week 0 天 00:00:00 0 天 02:00:00 0 天 04:00:00
0 751 738 399
1 726 973 190
2 548 480 170

(以 day_of_week 作为索引)

当我尝试将 sns.heatmap() 直接创建到该表时,它返回:

热图

如您所见,一周中的日子在 y 轴上,它显然以纳秒为单位划分时间。如何从中制作热图或按一周中的几小时和几天制作计数观察的热图?

提前致谢!

0 投票
1 回答
251 浏览

python - Groupby 并使用 Python 中的前向填充以 1 分钟的频率重新采样

我想以按列分组的频率data使用前向填充对列进行重新采样:ffill1mindfid

df

预期输出:

类似这篇文章的东西,但我试过了:

并且data列仅返回NaN值:


编辑:

  1. 第二行df timestamp2017-01-02 12:04:43.240变为2017-01-02 16:04:43.240,即属于同一行的行id应该被排序。
  2. 我误认为预期输出中的第二个是最小的,但@jezrael 的答案是正确的。
0 投票
2 回答
70 浏览

python - Python - 计算每月的总金额或销售量

我有一个包含多个 OrderId、销售日期、销售产品等的数据框。我目前正在尝试计算销售较少摩托车的月份。

这是我编写的代码,尝试使用 group by 计算每个月的总销售额:

显示的警告是:: 10:SettingWithCopyWarning:试图在 DataFrame 中的切片副本上设置值。尝试使用 .loc[row_indexer,col_indexer] = value 查看文档中的注意事项:https ://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a -复制摩托车[' ORDERDATE '] = pd.to_datetime(摩托车['ORDERDATE'])

显示的错误是: 错误:TypeError:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但获得了“Int64Index”的实例

我也试过了,但这都不起作用。

df.head(10) 结果:

在此处输入图像描述

0 投票
1 回答
273 浏览

python - 在Python中使用前向和后向填充窗口进行分组和重新采样

我想以按列分组的频率使用前向填充ffill和后向填充对数据列进行重新采样。bfill1mindfid

df

我用了:

如何通过从现在起过去 10 天的窗口内重新采样来添加附加条件?所以最后一次timestamp读数是现在,第一次timestamp读数是datetime.datetime.now() - pd.to_timedelta("10day")。目标是为每组提供相同数量的读数id


更新:

试过:

并返回:

所以我不应该申请reindex对象groupby,有没有办法可以解决它?

0 投票
1 回答
294 浏览

python - 在Python中按指定时间间隔分组并重新采样

如何在时间间隔内使用前向填充和后向填充(使用)以频率重新采样df1min即第一个时间戳是,最后一个时间戳是?ffillbfillidgroupby('id')2017-01-01 00:00:002017-01-05 00:00:002017-01-01 00:00:002017-01-05 00:00:00

我试过:

但这并没有指定所需的时间间隔2017-01-01 00:00:00- 2017-01-05 00:00:00

然后我尝试了:

并发现错误:


更新:

对于样本数据df_sub_data

我试过:

它返回了一个形状的数据框(30243, 3)

我想知道,我不应该期望7天的分钟数(10080, 3)给出的形状吗?7 x 24 x 60样本数据由 1 的数据组成id == 100

0 投票
0 回答
25 浏览

pandas - Pandas resample、groupby、size 导致输出不一致

我有 2 个数据帧df1df2,它们的结构相同:

我在每个数据帧上运行了以下命令:

我收到的输出在 dfs 之间不一致。对于df1 one,输出以时间戳作为索引。这是预期的输出。

但是,对于df2,输出将时间戳作为列。

0 投票
1 回答
54 浏览

python - Pandas:如何获取一列中每个项目的最后一个每日值并从每行中的值中减去它

考虑以下具有时间戳索引的数据帧,该时间戳索引可能具有重复(即非唯一)索引值、指示资产的另一列以及具有该时间戳在该时间戳处的资产值的另一列。

对于每一天,我想获得每项资产的最终价值,并从每行中的价值中减去每项资产的最终价值。所以在上表中,资产 A 的最后日值为 1(时间 2021-03-18 14:00:00),而 B 为 2(时间 2021-03-18 14:30:00)。然后,我想从每行的相应资产价值中扣除这些价值。所以在第一行我想计算new_value等于 4-1 = 3,第二行是 1-2 = -1。

考虑到某些指数值可能会重复,因为它们代表每种资产交易的时间,并且可能同时交易两种资产,我该怎么做。

0 投票
1 回答
41 浏览

python - 从几乎每周到每天重新采样熊猫数据框

重新采样此数据框的最简洁方法是什么:

...进入这个数据框:

注意: 12 月 8 日至 20 日之间为 12 天,20 日至 27 日之间为 7 天。

此外,为了明确我想要做的插值/重采样类型:

实际数据是分层的并且有多个列,但我想从一些我可以理解的东西开始:

0 投票
0 回答
112 浏览

python - 如何对具有零阶保持的分组数据帧进行重新采样?

我有一个带有一堆不同测量值的数据框(每个测量值在一measurements列中都有一个唯一的 ID),并且每 10 毫秒采集一次测量样本。

现在我想对所有数据进行下采样,以便为所有测量“伪造”不同的采样时间,例如 40 毫秒。

我实现了重采样,如下所示,但现在我被困住了:我不想.mean()在重采样器对象上执行聚合,因为这将处理来自相应 40 毫秒 bin 中所有样本的信息。

相反,我只想取重新采样的 40 毫秒 bin 中的第一个值并保持它 - 基本上,只需每 40 毫秒选择一次最新的给定值。

有没有一种优雅的方式来做到这一点?

编辑:找到了。只是被忽略.first()为实现我在文档中想要的内置方式:https ://pandas.pydata.org/pandas-docs/version/0.25.1/reference/resampling.html#