填补大型数据集中的时间戳空白

Arès

我有一个包含100K +行的数据集,该数据集上的一列是Datetime列,我们将其命名为A

我的数据集按A列排序。

我想“填补我的数据集的空白”,即:如果我有这两行紧随其后:

0  2019-03-13 08:12:20
1  2019-03-13 08:12:25

我想在它们之间添加缺少的秒数,因此,我将得到:

0  2019-03-13 08:12:20
1  2019-03-13 08:12:21
2  2019-03-13 08:12:22
3  2019-03-13 08:12:23
4  2019-03-13 08:12:24
5  2019-03-13 08:12:25

如果它们的天,月或年不同,我不想在两行之间生成行。

因此,如果有这两个连续的行:

0  2019-03-13 08:12:20
1  2019-03-15 08:12:21

我不会添加任何东西。

如果两行之间的时间差大于2小时,则我也无法生成行。

因此,如果有这两个连续的行:

0  2019-03-13 08:12:20
1  2019-03-15 11:12:21

我不会添加任何东西。

这是一个例子来说明我想要什么:

df=pd.DataFrame({'A': ["2019-03-13 08:12:20", "2019-03-13 08:12:25", "2019-03-20 08:17:23", "2019-03-22 08:17:25", "2019-03-22 11:12:20", "2019-03-22 11:12:23", "2019-03-24 12:33:23"]})
                     A
0  2019-03-13 08:12:20
1  2019-03-13 08:12:25
2  2019-03-20 08:17:23
3  2019-03-22 08:17:25
4  2019-03-22 11:12:20
5  2019-03-22 11:12:23
6  2019-03-24 12:33:23

最后,我想得到以下结果:

                      A
0   2019-03-13 08:12:20
1   2019-03-13 08:12:21
2   2019-03-13 08:12:22
3   2019-03-13 08:12:23
4   2019-03-13 08:12:24
5   2019-03-13 08:12:25
6   2019-03-20 08:17:23
7   2019-03-22 08:17:25
8   2019-03-22 11:12:20
9   2019-03-22 11:12:21
10  2019-03-22 11:12:22
11  2019-03-22 11:12:23
12  2019-03-24 12:33:23

我尝试了这个:

将熊猫作为pd导入

df=pd.DataFrame({'A': ["2019-03-13 08:12:20", "2019-03-13 08:12:25", "2019-03-20 08:17:23", "2019-03-22 08:17:25", "2019-03-22 11:12:20", "2019-03-22 11:12:23", "2019-03-24 12:33:23"]})
df['A']=pd.to_datetime(df['A'])
fill = [pd.date_range(df.iloc[i]['A'], df.iloc[i+1]['A'], freq='S') for i in range(len(df)-1) if (df.iloc[i+1]['A']-df.iloc[i]['A']).total_seconds()<=7200]
dates = [item for sublist in fill for item in sublist]
df=df.set_index('A').join(pd.DataFrame(index=pd.Index(dates, name='A')), how='outer').reset_index()
print(df)

它正在完成工作,但是速度很慢,有没有更快的方法呢?

我想要一片T骨牛排

可以创建与一组数目的列,其中两个连续行之间的差低于2小时后,使用diffcumsum然后set_index,列A将能够resample按组分组并reset_index选择所需的列。

df['gr'] = df.A.diff().gt(pd.Timedelta(hours=2)).cumsum()
df_output = df.set_index('A').groupby('gr', as_index=False).resample('s').sum().reset_index()[['A']]
print (df_output)
                     A
0  2019-03-13 08:12:20
1  2019-03-13 08:12:21
2  2019-03-13 08:12:22
3  2019-03-13 08:12:23
4  2019-03-13 08:12:24
5  2019-03-13 08:12:25
6  2019-03-20 08:17:23
7  2019-03-22 08:17:25
8  2019-03-22 11:12:20
9  2019-03-22 11:12:21
10 2019-03-22 11:12:22
11 2019-03-22 11:12:23
12 2019-03-24 12:33:23

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

填补开始和结束时间戳之间的空白

来自分类Dev

填补Excel中的时间空白

来自分类Dev

填补钛酸数据集中的缺失年龄

来自分类Dev

等距时间序列填补了空白

来自分类Dev

在MATLAB中的周期性时间序列中填补数据空白

来自分类Dev

在大型数据集中按最新日期和时间查找不同的少数列值的行

来自分类Dev

根据预期间隔获取数据集中缺少时间戳的计数

来自分类Dev

大熊猫填补了缺失数据的空白

来自分类Dev

重新采样OHLC刻度数据并填补熊猫中的空白

来自分类Dev

合并两个数据框以填补空白

来自分类Dev

大熊猫填补了缺失数据的空白

来自分类Dev

来自时间戳的数据

来自分类Dev

大型数据集中的选择/投影/分组

来自分类Dev

从大型数据集中逐步构建箱线图

来自分类Dev

识别大型数据集中的重复项

来自分类Dev

某些小时的空白数据 - 因此在我的数组中丢失。有没有办法填补缺失的时间?

来自分类Dev

如何在postgres中将日期记录分组后填补时间空白

来自分类Dev

填补行之间的大空白

来自分类Dev

如何填补Excel中的空白

来自分类Dev

填补矩阵行中的空白

来自分类Dev

使用R计算大型数据集中每行的斜率

来自分类Dev

如何提高大型数据集中Python计算的速度?

来自分类Dev

R-在大型数据集中重复线性回归

来自分类Dev

熊猫:如何在大型数据集中填充缺失值?

来自分类Dev

使用列值从大型数据集中选择特定行

来自分类Dev

使用循环和grepl从大型数据集中删除几行

来自分类Dev

如何在Rstudio中删除大型数据集中的变量?

来自分类Dev

根据条件删除大型数据集中的重复项

来自分类Dev

在大型数据集中单独翻译所有 VTK 字形

Related 相关文章

热门标签

归档