pandas :解析24:00而不是00:00 [英] Pandas: parsing 24:00 instead of 00:00

查看:65
本文介绍了 pandas :解析24:00而不是00:00的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数据集,其中小时记录为 [0100:2400] ,而不是 [0000:2300]

例如

  pd.to_datetime('201704102300',format ='%Y%m%d%H%M') 

返回

  Timestamp('2017-04-10 20:00:00') 

但是

  pd.to_datetime('201704102400',format ='%Y%m%d%H%M') 

给我错误:

ValueError:未转换的数据保留:0

如何解决此问题?

我可以手动调整数据,例如本

解决方案

Pandas使用系统 strptime ,因此,如果您需要非标准的内容,则可以自己滚动.

代码:

 将pandas导入为pd导入日期时间为dtdef my_to_datetime(date_str):如果date_str [8:10]!='24':返回pd.to_datetime(date_str,format ='%Y%m%d%H%M')date_str = date_str [0:8] +'00'+ date_str [10:]返回pd.to_datetime(date_str,format ='%Y%m%d%H%M')+ \dt.timedelta(days = 1)打印(my_to_datetime('201704102400')) 

结果:

 <代码> 2017-04-11 00:00:00 

对于 pandas.DataFrame 中的列:

  df ['time'] = df.time.apply(my_to_datetime) 

I have a dataset, in which the hour is recorded as [0100:2400], instead of [0000:2300]

For example

pd.to_datetime('201704102300', format='%Y%m%d%H%M')

returns

Timestamp('2017-04-10 20:00:00')

But

pd.to_datetime('201704102400', format='%Y%m%d%H%M')

gives me the error:

ValueError: unconverted data remains: 0

How can I fix this problem?

I can manually adjust the data, such as mentioned in this SO Post, but I think pandas should have handled this case already?

UPDATE:

And how to do it in a scalable way for dataframe? For example, the data look like this

解决方案

Pandas uses the system strptime, and so if you need something non-standard, you get to roll your own.

Code:

import pandas as pd
import datetime as dt

def my_to_datetime(date_str):
    if date_str[8:10] != '24':
        return pd.to_datetime(date_str, format='%Y%m%d%H%M')

    date_str = date_str[0:8] + '00' + date_str[10:]
    return pd.to_datetime(date_str, format='%Y%m%d%H%M') + \
           dt.timedelta(days=1)

print(my_to_datetime('201704102400'))

Results:

2017-04-11 00:00:00

For a Column in a pandas.DataFrame:

df['time'] = df.time.apply(my_to_datetime)

这篇关于 pandas :解析24:00而不是00:00的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆