最近,我一直在研究时间序列数据集,并编写了一个脚本来自动化一些绘图。使用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格式。
附上我的函数代码,以防我在转换时间戳方面出现任何错误。
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')
答案 0 :(得分:0)
问题是python不能很好地识别/
。我自己遇到了这个问题。破折号是它认为最好的。如果我建议,请尝试保留-
格式。它只是Python是Python。 :P
在wellID['DatesRev']
中,将format='%d/%m/%Y'
更改为format='%d-%m-%Y'
,这可能会解决您的问题。