日期格式,包括天

时间:2018-11-22 09:56:28

标签: python pandas datetime

我有一个csv文件,其中包含日期列(D / M / Y格式),我想将其转换为天列。我使用了以下方法:

In [1]: import numpy as np
        import pandas as pd
        from pandas import Series, DataFrame

        #f = pd.read_csv(".some_file.csv")
In [2]: f=pd.DataFrame([['1/1/2013', 400, 1000]['2/1/2013', 500, 3000]], columns=['date','flights','distance'])

        f['date']=pd.to_datetime(f['date'], format='%d/%m/%y',errors='ignore')

        f['day']=f['date'].dt.weekday_name

我期待日栏。它是第一次出现,我也使用了这张桌子。但是,清除内核后,我得到的日期是NaT,天是NaN。从那以后的日子就没出现了。 我做错什么了吗?如果是,那么第一次是如何出现的?

感谢您的阅读。任何帮助将不胜感激。

PS CSV具有超过33万行。我必须为每个日期指定日期。

1 个答案:

答案 0 :(得分:0)

问题是您没有正确指定datetime格式,并且通过设置errors='ignore'隐藏了错误。全年需要'%Y'(请参阅Python's strftime directives):

f['date'] = pd.to_datetime(f['date'], format='%d/%m/%Y', errors='coerce')

errors='coerce'将为不可转换的日期提供NaN。或者,要引发错误,只需完全忽略errors参数。

对于此类问题,最好查看f.dtypes以查看您的类型转换是否成功。例如,您应该请参见:

print(f['date'].dtype)
# datetime64[ns]

您应该不要看到:

print(f['date'].dtype)
# object