Pandas:在给定条件的情况下添加具有均匀间隔时间戳的新行

2024-05-14 17:11:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据帧:

    value                 timestamp
20.713936   2019-03-04 17:59:36 UTC
20.871742   2019-03-04 18:08:31 UTC

我想根据时间戳列的时差(如果它超过1分钟但不到15分钟)向数据帧添加新的行。它应该看起来,尽管不是这样的:

^{pr2}$

我想做一个函数,可以做这样的事情:

  1. 计算两个时间戳之间的时差并检查 条件。
  2. 如果条件为真,请在中查找分钟数 不同之处,用它来了解我要做多少行 插入(如果分钟差为9,那么我将插入8个新行)。
  3. 用连续+1的增量填充新的时间戳行 几分钟。

由于熊猫如此强大,我想知道是否有一种方法可以实现相同的目标,而不必编写这些函数,避免使用if/for循环。

我想,只在每个之前的时间戳中添加1比找到一个相等间隔的时间戳向量要容易。

我想在辅助帧的帮助下完成这一点,并按时间戳执行“有序合并”,但我对这个框架感到迷茫。

有人知道怎么做吗?

谢谢你的时间!


Tags: 数据方法函数目标forifvalue时间
2条回答

你应该看看pandas.date_range()。我想这就是你要找的。在

使用pandas.to_datetimepandas.DataFrame.asfreq

import pandas as pd

df
       value           timestamp
0  20.713936 2019-03-04 17:59:36
1  20.871742 2019-03-04 18:08:31

df['timestamp'] = pd.to_datetime(df['timestamp'])
new_df = df.set_index('timestamp', drop=True)
new_df = new_df.asfreq('1min').reset_index().append(df.iloc[-1]).reset_index(drop=True)

输出:

^{pr2}$

相关问题 更多 >

    热门问题