问题标签 [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 - Python/Dask:如何在 dask 中复制“.groupby('Asset').resample('2D').pad()”的使用?
如何在 DASK 上获得与 pandas 相同的结果?
目标是为每个组设置一个统一的时间间隔,复制最后一个值,直到我们有一个新值。
** 这只是一个例子,现实世界的应用真的很大。
谢谢!
pandas - 如何将日期重新采样为 1 分钟条?
说我有一个pandas.DataFrame
喜欢:
我怎样才能创建一个pandas.DataFrame
喜欢:
我已经尝试过df.resample('1 min').asfreq()
了,但这给了我从第一行到最后一行的所有分钟数,包括不在原始索引中的所有天数。
python - 如何使用 groupby() 函数在 Python 中制作宿舍?
我有各个城市的汽车销售数据集,我想将数据集划分为按城市划分的季度销售量,我尝试了代码,但没有成功。
python - Pandas:是否可以对分类列进行下采样?
让我们有一个这样的 DataFrame日志:
其中状态列可以是 0 或 1(或缺失)。如果用 UInt8(支持 <NA> 的最小数字数据类型)表示,可以像这样对数据进行下采样:
重采样工作得很好,只有值 0.5 没有意义,因为它只能是 0 或 1。出于同样的原因,使用category作为该列的 dtype 是有意义的。但是,在这种情况下,重采样将不起作用,因为mean()方法仅适用于数值数据。
这很有意义 - 但是 - 我可以想象一个对分类数据进行下采样和平均的过程,只要组中的数据保持相同,结果将是那个特定值,否则结果将是 <NA>,喜欢:
对于呈现的具有类别状态列的 DataFrame日志,将导致:
顺便说一句,我这样做resample.main()
是因为还有许多其他(数字)列,这很有意义,为了简单起见,我只是没有在这里明确提到它。
pandas - 对熊猫中每个组内的数据进行重新采样
我有一个具有不同 id 和可能重叠时间的数据框,时间步长为 0.4 秒。我想以 0.8 秒的时间步长重新采样每个 id 的平均速度。
可以通过以下代码创建一个示例
该time
列datetime
通过以下方式转换为类型
df["re_time"] = pd.to_datetime(df["time"], unit='s')
python - 重新采样数据帧,插入 NaN 并返回数据帧
我有一个数据框df
,其中包含 3 小时内的数据:
我想每小时重新采样一次数据,并在两者之间线性插入缺失值。我可以实现类似的东西,用 填充缺失的值.bfill()
,它看起来像这样:
我试图改变它来完成我的任务,如下所示:
但df2 = df.resample('H')
相比之下,df2 = df.resample('H').bfill()
不返回数据框对象,而是一个pandas.core.resample.DatetimeIndexResampler object
.
你知道我怎么做重采样和插值吗?你还有其他工作吗?肿瘤坏死因子
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
python - 合并具有不同时间分辨率的 pandas 时间序列数据帧
我有两个数据帧,每个数据帧都有日期时间索引。其中一个数据集的时间分辨率为 12.33 分钟,此处df1
为 ,另一个数据集的时间分辨率为 1 秒,此处称为df2
:
我现在想合并这些数据帧,以便它们共享相同的时间分辨率。本质上,我想重新采样df2
(理想情况下使用mean()
),然后将其放在新的数据框中,与来自df1
具有相同日期时间索引的数据一起df1
(即,使来自的第一个值是和df2
之间的平均值)。知道是否可以根据和之间的中点进行平均也很有趣。我一直在玩,但我似乎无法找到有效的解决方案。df1.index[0]
df1.index[[1]]
df1.index[0]
df1.index[[1]]
resample
reindex
pd.merge_asof
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
知道它是非唯一的,我怎样才能获得索引值?