【问题标题】:How can I add seconds to time series data in Python?如何在 Python 中为时间序列数据添加秒数?
【发布时间】:2021-03-20 02:30:55
【问题描述】:

所以我在熊猫数据框中有以下属于 TS 的时间戳:

 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),
 Timestamp('2010-11-20 00:00:00'),

原始 csv 文件每分钟有 60 个读数,但时间戳只有 hh:mm(例如 13:23),当我转换/解析日期时,它只是将 00 添加到所有秒条目。是否有任何熊猫功能可以增加秒数?这背后的动机是它可以在 matplotlib 中很好地绘制图形。目前我每分钟有 60 个重叠点,但是我希望时间戳增加,例如00:00:01、00:00:02、00:00:03 等

【问题讨论】:

  • 您应该粘贴代码和数据的最小 (!!!) 工作示例
  • 如果您确定每分钟恰好有 60 个样本,只需创建一个时间戳对象,其日期和时间为零,秒为 1、2、3 .. 然后,只需在循环中添加 2
  • resampling 到 1s 频率可能是一个选项。

标签: python pandas datetime matplotlib time-series


【解决方案1】:

假设它们已排序并且增量始终为 1 秒,则手动添加秒数:

df = pd.Series([pd.Timestamp(2020,11,20,0,0)]*10)
df += pd.Series(pd.Timedelta(seconds=i) for i in range(10))
0   2020-11-20 00:00:00
1   2020-11-20 00:00:01
2   2020-11-20 00:00:02
3   2020-11-20 00:00:03
4   2020-11-20 00:00:04
5   2020-11-20 00:00:05
6   2020-11-20 00:00:06
7   2020-11-20 00:00:07
8   2020-11-20 00:00:08
9   2020-11-20 00:00:09
dtype: datetime64[ns]

【讨论】:

    猜你喜欢
    • 2018-04-29
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    相关资源
    最近更新 更多