Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

ValueError: time data '14.03.2022 00:00:00.000 GMT-0400' does not match format '%d.%m.%Y %H:%M:%S.%f %z' (match)

I want to change the date format of my data but it doesn’t seem to work.

here is the error that it give me when I try to run my code "ValueError: time data ‘14.03.2022 00:00:00.000 GMT-0400’ does not match format ‘%d.%m.%Y %H:%M:%S.%f %z’ (match) "

here my code:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

import pandas as pd
import numpy as np
from scipy.signal import argrelextrema
import matplotlib.pyplot as plt

# import our historical data
data = pd.read_csv('Data/EURUSD.csv')
data.columns = ['Date', 'open', 'high', 'low', 'close', 'volume']
data = data.drop_duplicates(keep=False)
data.Date = pd.to_datetime(data.Date, format='%d.%m.%Y %H:%M:%S.%f %z')
data = data.set_index(data.Date)
data = data['open','high','low','close','volume']
price = data.close.iloc[:100]

# find our relative extrema
max_idx = argrelextrema(price.values, np.greater, order=1)
min_idx = argrelextrema(price.values, np.less, order=1)

print(max_idx)
print(min_idx)

EURUSD.CSV

Local time,Open,High,Low,Close,Volume
14.03.2022 00:00:00.000 GMT-0400,1.09049,1.09177,1.09015,1.09175,6011.13
14.03.2022 01:00:00.000 GMT-0400,1.09175,1.09186,1.09089,1.09116,7262.199999999998
14.03.2022 02:00:00.000 GMT-0400,1.09114,1.09231,1.09093,1.09178,5828.28
14.03.2022 03:00:00.000 GMT-0400,1.09177,1.09407,1.09109,1.09320,12058.280000000004
14.03.2022 04:00:00.000 GMT-0400,1.09321,1.09601,1.09303,1.09567,14770.299999999996

>Solution :

According to strtime.org %z is

UTC offset in the form ±HHMM[SS[.ffffff]] (empty string if the object
is naive).

So clearly GMT-0400 is not valid value for that.

As you are already using pandas you might simply do not provide format, which will cause pandas to detect it automatically, consider following example

import pandas as pd
timestring = '14.03.2022 00:00:00.000 GMT-0400'
timestamp = pd.to_datetime(timestring)
print(timestamp)

output

2022-03-14 00:00:00+04:00
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading