簡體   English   中英

將日期時間00:00:00更改為24:00:00

[英]change datetime 00:00:00 to 24:00:00

我有每小時的數據,每天從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不允許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)

我不知道如何在實踐中使用它,但是重新格式化很有趣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM