将日期时间00:00:00更改为24:00:00

2024-04-26 03:36:19 发布

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

我有每天从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” 还有,我想把同样的东西加到2008年12月21日和2008年12月22日,以此类推,每00:00:00。你知道吗

有没有一个Python的方法可以做到这一点??你知道吗


Tags: 数据方法import示例dataframepandasdfdata
1条回答
网友
1楼 · 发布于 2024-04-26 03:36:19

由于DateTime不允许24小时(即从00:00:00到23:59:59),所以最好的方法是将字符串转换为DateTime,然后再转换回字符串。你知道吗

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)

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

相关问题 更多 >