我有一个类似下面的dataframe,其中day列中的日期格式为d-m-y:
AL = (['1','10-12-2022','2022-12-17 00:00:00'],
['1','10-12-2022','2022-12-17 00:00:00'],
['1','7','2022-12-17 00:00:00'])
Data = pd.DataFrame(AL,columns = ['Hour','Day','Day2'])
其中dtypes如下:
Day object
Day2 object
Hour object
dtype: object
这只是我实际df的一部分,它要大得多。目标是我想将datetime条目的小时更改为小时列中的任何数字,但问题是我有这个异常条目,它在整个过程中重复,导致错误。如何最好地处理它?
到目前为止,我只尝试了这个,但当它试图转换异常条目时,我得到了一个错误。
df_long['Day3']= pd.to_datetime(df_long['Day']) + pd.to_timedelta(df_long['Hour2'])
error: time data "7" doesn't match format "%d-%m-%Y", at position 6. You might want to try:
- passing `format` if your strings have a consistent format;
我的理想输出是新列包含如下所示的datetime条目,在使用第一列中的hour条目之后;
10-12-2022 01:00:00
日期格式= dd-mm-yyyy
我想知道在一般情况下,什么是一个很好的方式选择,然后编辑特定的条目在df列,而忽略其他人?
1条答案
按热度按时间flvlnr441#
您可以通过使用特定的
format
来解析非标准的日期时间字符串格式,并将关键字errors
设置为'coerce'
以忽略无效的日期时间字符串来实现目标。EX: