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

python - Python/Dask:如何在 dask 中复制“.groupby('Asset').resample('2D').pad()”的使用?

如何在 DASK 上获得与 pandas 相同的结果?

目标是为每个组设置一个统一的时间间隔,复制最后一个值,直到我们有一个新值。

** 这只是一个例子,现实世界的应用真的很大。

谢谢!

0 投票
1 回答
45 浏览

pandas - 如何将日期重新采样为 1 分钟条?

说我有一个pandas.DataFrame喜欢:

我怎样才能创建一个pandas.DataFrame喜欢:

我已经尝试过df.resample('1 min').asfreq()了,但这给了我从第一行到最后一行的所有分钟数,包括不在原始索引中的所有天数。

0 投票
1 回答
44 浏览

python - 如何使用 groupby() 函数在 Python 中制作宿舍?

我有各个城市的汽车销售数据集,我想将数据集划分为按城市划分的季度销售量,我尝试了代码,但没有成功。

0 投票
1 回答
67 浏览

python - Pandas:是否可以对分类列进行下采样?

让我们有一个这样的 DataFrame日志

其中状态列可以是 0 或 1(或缺失)。如果用 UInt8(支持 <NA> 的最小数字数据类型)表示,可以像这样对数据进行下采样:

重采样工作得很好,只有值 0.5 没有意义,因为它只能是 0 或 1。出于同样的原因,使用category作为该列的 dtype 是有意义的。但是,在这种情况下,重采样将不起作用,因为mean()方法仅适用于数值数据。

这很有意义 - 但是 - 我可以想象一个对分类数据进行下采样和平均的过程,只要组中的数据保持相同,结果将是那个特定值,否则结果将是 <NA>,喜欢:

对于呈现的具有类别状态列的 DataFrame日志,将导致:

顺便说一句,我这样做resample.main()是因为还有许多其他(数字)列,这很有意义,为了简单起见,我只是没有在这里明确提到它。

0 投票
1 回答
38 浏览

pandas - 对熊猫中每个组内的数据进行重新采样

我有一个具有不同 id 和可能重叠时间的数据框,时间步长为 0.4 秒。我想以 0.8 秒的时间步长重新采样每个 id 的平均速度。

可以通过以下代码创建一个示例

timedatetime通过以下方式转换为类型

df["re_time"] = pd.to_datetime(df["time"], unit='s')

0 投票
1 回答
179 浏览

python - 重新采样数据帧,插入 NaN 并返回数据帧

我有一个数据框df,其中包含 3 小时内的数据:

我想每小时重新采样一次数据,并在两者之间线性插入缺失值。我可以实现类似的东西,用 填充缺失的值.bfill(),它看起来像这样:

我试图改变它来完成我的任务,如下所示:

df2 = df.resample('H')相比之下,df2 = df.resample('H').bfill()不返回数据框对象,而是一个pandas.core.resample.DatetimeIndexResampler object.

你知道我怎么做重采样和插值吗?你还有其他工作吗?肿瘤坏死因子

0 投票
1 回答
51 浏览

python - How to discretize time series with overspilling durations?

I am trying to discretize my dataframe which looks like this:

Start Date Park Duration (mins) Charge Duration (mins) Energy (kWh)
49698 2016-01-01 11:48:00 230 92.0 3.034643
49710 2016-01-01 13:43:00 225 225.0 12.427662
49732 2016-01-01 22:43:00 708 111.0 10.752058
49736 2016-01-02 07:09:00 149 149.0 11.160776
49745 2016-01-02 10:29:00 156 156.0 10.298505
49758 2016-01-02 13:06:00 84 84.0 2.904127
49768 2016-01-02 15:00:00 27 26.0 2.573858
49773 2016-01-02 15:31:00 174 152.0 14.961943
49775 2016-01-02 16:01:00 195 167.0 16.317518
49790 2016-01-02 19:37:00 108 108.0 10.829344
49791 2016-01-02 19:56:00 289 26.0 2.552439
49802 2016-01-03 09:23:00 58 58.0 5.243358
49803 2016-01-03 09:33:00 264 134.0 6.782309
49813 2016-01-03 11:12:00 240 0.0 0.008115
49825 2016-01-03 14:12:00 97 96.0 5.29069
49833 2016-01-03 15:52:00 201 201.0 16.058235
49834 2016-01-03 15:52:00 53 52.0 5.304866
49840 2016-01-03 17:27:00 890 219.0 15.878921
49857 2016-01-04 05:57:00 198 127.0 6.368932
49871 2016-01-04 08:48:00 75 74.0 5.99877

What I want to do is to sample it in to 2 hour slots, like so:

Start Date Energy (kWh) Charge Duration (mins) Fee
2016-01-01 10:00:00 3.034643 92.0 0.0
2016-01-01 12:00:00 12.427662 225.0 0.0
2016-01-01 14:00:00 0.0 0.0 0.0
2016-01-01 16:00:00 0.0 0.0 0.0
2016-01-01 18:00:00 0.0 0.0 0.0
2016-01-01 20:00:00 0.0 0.0 0.0
2016-01-01 22:00:00 10.752058 111.0 0.0
2016-01-02 00:00:00 0.0 0.0 0.0
2016-01-02 02:00:00 0.0 0.0 0.0
2016-01-02 04:00:00 0.0 0.0 0.0

Which i did with

However the problem is that there is overspilling in the data, as you can see from the first row, the Charge Duration is 92 mins. however only 12 of those 92 minutes is in the 10:00:00 - 12:00:00 time slot, however the way i used resample assigned all of the charge duration to that time slot. The behaviour I want is to split them "evenly" in the timeslots based on Start Date and Charge Duration, such that 12 minutes fall in to the first slot and the remaining 80 falls into the next. There is also instances of EV chargings going over 3 periods. I hope it makes sense. How would you go about it?

Here is the original data as comma seperated values:

,Start Date,Park Duration (mins),Charge Duration (mins),Energy (kWh) 49698,2016-01-01 11:48:00, 230 ,92.0,3.034643 49710,2016-01-01 13:43:00, 225 ,225.0,12.427662 49732,2016-01-01 22:43:00, 708 ,111.0,10.752058 49736,2016-01-02 07:09:00, 149 ,149.0,11.160776 49745,2016-01-02 10:29:00, 156 ,156.0,10.298505 49758,2016-01-02 13:06:00, 84 ,84.0,2.904127 49768,2016-01-02 15:00:00, 27 ,26.0,2.573858 49773,2016-01-02 15:31:00, 174 ,152.0,14.961943 49775,2016-01-02 16:01:00, 195 ,167.0,16.317518 49790,2016-01-02 19:37:00, 108 ,108.0,10.829344 49791,2016-01-02 19:56:00, 289 ,26.0,2.552439 49802,2016-01-03 09:23:00, 58 ,58.0,5.243358 49803,2016-01-03 09:33:00, 264 ,134.0,6.782309 49813,2016-01-03 11:12:00, 240 ,0.0,0.008115 49825,2016-01-03 14:12:00, 97 ,96.0,5.29069 49833,2016-01-03 15:52:00, 201 ,201.0,16.058235 49834,2016-01-03 15:52:00, 53 ,52.0,5.304866 49840,2016-01-03 17:27:00, 890 ,219.0,15.878921 49857,2016-01-04 05:57:00, 198 ,127.0,6.368932 49871,2016-01-04 08:48:00, 75 ,74.0,5.99877

0 投票
0 回答
104 浏览

python - 合并具有不同时间分辨率的 pandas 时间序列数据帧

我有两个数据帧,每个数据帧都有日期时间索引。其中一个数据集的时间分辨率为 12.33 分钟,此处df1为 ,另一个数据集的时间分辨率为 1 秒,此处称为df2

以下是本质df1上的df2样子: 在此处输入图像描述 在此处输入图像描述

我现在想合并这些数据帧,以便它们共享相同的时间分辨率。本质上,我想重新采样df2(理想情况下使用mean()),然后将其放在新的数据框中,与来自df1具有相同日期时间索引的数据一起df1(即,使来自的第一个值是和df2之间的平均值)。知道是否可以根据和之间的中点进行平均也很有趣。我一直在玩,但我似乎无法找到有效的解决方案。df1.index[0]df1.index[[1]]df1.index[0]df1.index[[1]]resamplereindexpd.merge_asof

0 投票
1 回答
53 浏览

python - 上采样分钟到秒

我有一个包含这样的日期时间列的数据框:

原始数据

正如您在“date_time”列中看到的,最小的时间单位是分钟。事实上,它没有第二个uinte。我的意思是,例如,在前六行中,重复 4:24,这意味着每 10 秒收集一次数据,或者重复 10 次 4:25,这意味着每 6 秒记录一次数据。

事实上,我正在寻找一种在“date_time”列中排名第二的解决方案。

理想的格式是这样的:

理想的格式

0 投票
0 回答
46 浏览

pandas - Pandas:如何获取非唯一索引的索引值

我有一个带有日期时间索引的数据框,其中索引值是非唯一的(请参阅最后两个索引值)。

在给定与第一个索引值 +5 秒的时间增量的情况下,我想获得下一个有效的索引值。在下面的情况下,第一个索引值 = '2018-12-03 08:00:00.410' 并增加 5 秒将导致 '2018-12-03 08:00:05.410'。下一个有效的索引值将是“2018-12-03 08:00:08.680”。

我试图申请

但我明白了Exception has occurred: InvalidIndexError Reindexing only valid with uniquely valued Index objects

知道它是非唯一的,我怎样才能获得索引值?