【问题标题】:Round all index to 30 min in Pandas datetimeindex在 Pandas datetimeindex 中将所有索引舍入到 30 分钟
【发布时间】:2022-01-26 22:59:55
【问题描述】:

我知道圆形、天花板、地板功能。

df.index.round("30min")

这会四舍五入到最接近的 30 分钟间隔。我想要的是每个都四舍五入到 30 分钟。

在.round 的情况下,10:15 将四舍五入为 10:30,10:45 将四舍五入为 11:00。我希望两者都舍入到 10:30。

日期时间索引:

DatetimeIndex(['2021-11-29 09:30:00', '2021-11-29 09:45:00',
               '2021-11-29 10:00:00', '2021-11-29 10:15:00',
               '2021-11-29 10:30:00', '2021-11-29 10:45:00',
               '2021-11-29 11:00:00', '2021-11-29 11:15:00',
               '2021-11-29 11:30:00', '2021-11-29 11:45:00',
               ...
               '2021-12-27 13:30:00', '2021-12-27 13:45:00',
               '2021-12-27 14:00:00', '2021-12-27 14:15:00',
               '2021-12-27 14:30:00', '2021-12-27 14:45:00',
               '2021-12-27 15:00:00', '2021-12-27 15:15:00',
               '2021-12-27 15:30:00', '2021-12-27 15:45:00'],
              dtype='datetime64[ns]', name='Datetime', length=520, freq=None)

【问题讨论】:

  • 11:00怎么办?
  • 改为11:30

标签: python pandas datetime datetimeindex pandas-timeindex


【解决方案1】:

使用DatetimeIndex.floor 按小时加上 30 分钟:

df = pd.DataFrame(index=pd.DatetimeIndex(
               ['2021-11-29 09:30:00', '2021-11-29 09:45:00',
               '2021-11-29 10:00:00', '2021-11-29 10:15:00',
               '2021-11-29 10:30:00', '2021-11-29 10:45:00',
               '2021-11-29 11:00:00', '2021-11-29 11:15:00',
               '2021-11-29 11:30:00', '2021-11-29 11:45:00',
               '2021-12-27 13:30:00', '2021-12-27 13:45:00',
               '2021-12-27 14:00:00', '2021-12-27 14:15:00',
               '2021-12-27 14:30:00', '2021-12-27 14:45:00',
               '2021-12-27 15:00:00', '2021-12-27 15:15:00',
               '2021-12-27 15:30:00', '2021-12-27 15:45:00']))

print (df.index.floor("1H") + pd.Timedelta('30min'))

DatetimeIndex(['2021-11-29 09:30:00', '2021-11-29 09:30:00',
               '2021-11-29 10:30:00', '2021-11-29 10:30:00',
               '2021-11-29 10:30:00', '2021-11-29 10:30:00',
               '2021-11-29 11:30:00', '2021-11-29 11:30:00',
               '2021-11-29 11:30:00', '2021-11-29 11:30:00',
               '2021-12-27 13:30:00', '2021-12-27 13:30:00',
               '2021-12-27 14:30:00', '2021-12-27 14:30:00',
               '2021-12-27 14:30:00', '2021-12-27 14:30:00',
               '2021-12-27 15:30:00', '2021-12-27 15:30:00',
               '2021-12-27 15:30:00', '2021-12-27 15:30:00'],
              dtype='datetime64[ns]', freq=None)

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 2015-12-19
    • 2015-01-17
    • 2014-08-20
    • 2019-04-12
    • 2015-04-04
    • 2018-03-13
    • 2014-10-09
    相关资源
    最近更新 更多