Python如何处理时间转换?

时间:2018-01-17 03:49:23

标签: python datetime timestamp

最近,我一直在研究时间序列数据集,并编写了一个脚本来自动化一些绘图。使用pd.to_datetime函数(以特定格式提供),我假设会自动将每个条目转换为适当的格式。

The raw data follows this format:
%d/%m/%YYYY HH:MM (HH:MM is irrelevant in this case so don't worry about it as we are only interested in the daily average)

但是,似乎Python间歇性地更改了“原始时间戳”并将格式更改为: %D-%间 - %YYYY

为什么会这样,我怎样才能确保Python不这样做?

我收到了以下错误,并努力弄清楚为什么会这样。 我看过以下SO但我没有同样的问题。 time data does not match format

数据本身在以下CSV中提供,全部采用%d /%m /%Y格式。

Error message

附上我的函数代码,以防我在转换时间戳方面出现任何错误。

def plotFunction(dataframe):
    for i in wellNames:
        my_list = dataframe["Date"].values
        DatesRev = []

        for j in my_list:
            a=j[0:10]
            DatesRev.append(a)
        #We now need to re-add the dates to our data frame
        df2 = pd.DataFrame(data= DatesRev)
        df2.columns = ["DatesRev"]
        dataframe["DatesRev"] = df2["DatesRev"]
#         print (dataframe)
#         #df2= pd.DataFrame(DatesRev) 
#         #df2.columns = ['DatesRev']    
#         #dataframe['DatesRev'] = df2['DatesRev']
        wellID = dataframe[dataframe['Well']==i]
        wellID['DatesRev'] = pd.to_datetime(wellID['DatesRev'], format='%d/%m/%Y')
        print (i)
#         ax = wellID.set_index('DatesRev').plot()
#         xfmt = mdates.DateFormatter('%d-%m-%Y')
#         ax.xaxis.set_major_formatter(xfmt)
#         plt.xticks(rotation=90)
#         ax.legend(bbox_to_anchor=(1.04,1), loc="upper left")
#         plt.title(i)
#         plt.show()
#         plt.savefig(i + ".jpg", bbox_inches='tight') 

1 个答案:

答案 0 :(得分:0)

问题是python不能很好地识别/。我自己遇到了这个问题。破折号是它认为最好的。如果我建议,请尝试保留-格式。它只是Python是Python。 :P

wellID['DatesRev']中,将format='%d/%m/%Y'更改为format='%d-%m-%Y',这可能会解决您的问题。