【问题标题】:change datetime 00:00:00 to 24:00:00将日期时间 00:00:00 更改为 24:00:00
【发布时间】:2019-01-24 22:54:40
【问题描述】:

我有每天从 00 到 23 小时的每小时数据。我想要做的是将每个日期的前一天的 00 切换到 24。

这是一个示例数据:

import pandas as pd    

data = {'datetime' : ['19DEC08:22:00:00', '19DEC08:23:00:00', '20DEC08:00:00:00', '20DEC08:01:00:00', '20DEC08:02:00:00'],
         'entry' : ['a','b','c','d','e']}
df = pd.DataFrame(data)

在这个例子中,我想将 '20DEC08:00:00:00' 更改为 '19DEC08:24:00:00' 而且,我希望在 21Dec08 和 22Dec08 等每 00:00:00 做同样的事情。

有没有pythonic方法可以做到这一点??

【问题讨论】:

  • 第一步是将datetime转换为实际的datetime对象。
  • 哦!谢谢!我会确保的。

标签: python pandas datetime dataframe


【解决方案1】:

由于 DateTime 不允许 24 小时(即从 00:00:00 到 23:59:59),我认为最好的方法是从字符串转换为日期时间,然后再转换回字符串。

import calendar

def add_24th_hour(row):
    date = row['datetime']
    if date.hour == 00:
        hour = 24
        day = date.day -1
        return "{:02d}{}{:02d}:{:02d}:{:02d}:{:02d}".format(day, 
                                                            calendar.month_abbr[date.month], 
                                                            date.year, 
                                                            hour, 
                                                            date.minute, 
                                                            date.second)
    else:
        return "{:02d}{}{:02d}:{:02d}:{:02d}:{:02d}".format(date.day, 
                                                            calendar.month_abbr[date.month], 
                                                            date.year, 
                                                            date.hour, 
                                                            date.minute, 
                                                            date.second)

df['datetime'] = pd.to_datetime(df['datetime'], format = '%d%b%y:%H:%M:%S')
df.loc[:,'24hr_datetime'] = df.apply(add_24th_hour, axis=1)

我不知道这将如何在实践中使用,但重新格式化很有趣。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多