Проверка, является ли последнее Время CSV текущим временем или не использует Pandas Python3 - PullRequest
0 голосов
/ 28 сентября 2018

Я попробовал следующее, чтобы преобразовать время в индийское время для тестирования.Но получил много ошибок.Посмотрите, что я пытался сделать сейчас:

>>> df = pd.read_csv("Real.csv",encoding='utf-16',index_col=0)
>>> df.tail(1).index
Index(['2018.09.27 16:43:00'], dtype='object', name='Time')
>>> df.tail(1).index.tz_convert('Asia/Kolkata')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Index' object has no attribute 'tz_convert'
>>> df.index.tz_convert('Asia/Kolkata').tail(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Index' object has no attribute 'tz_convert'
>>> df.index.tz_localize('GMT').tz_convert('Asia/Kolkata').tail(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'Index' object has no attribute 'tz_localize'

Вот пример csv:

2018.09.27 16:34:00,0.94259,0.94276,0.94253,0.94276,0.002,-0.004,-0.001,-0.001,-0.007,0.001,0.002,0.001
2018.09.27 16:35:00,0.94275,0.94275,0.94249,0.94253,0.002,-0.002,-0.001,0,-0.006,0.002,0,0.001
2018.09.27 16:36:00,0.94253,0.94259,0.94235,0.94241,0,-0.003,0,0,-0.005,-0.001,0.001,0.002
2018.09.27 16:37:00,0.94241,0.94258,0.94237,0.94256,0,-0.003,0,0.001,-0.005,0,0.001,0.001
2018.09.27 16:38:00,0.94256,0.94256,0.94238,0.94245,0.001,0,0.001,0.005,0.001,0.001,-0.002,-0.001
2018.09.27 16:39:00,0.94246,0.9426,0.9423899999999999,0.94254,0.001,0,-0.001,0.003,-0.001,0.002,-0.001,0
2018.09.27 16:40:00,0.94252,0.94275,0.94252,0.94274,0.002,0.001,0,0.003,0,0.003,-0.002,-0.001
2018.09.27 16:41:00,0.94274,0.94278,0.94265,0.94268,0.001,-0.002,-0.001,0.002,-0.001,0.002,0.001,-0.001
2018.09.27 16:42:00,0.94268,0.94285,0.94268,0.94272,0,-0.001,0.001,0.002,-0.002,0.002,0,-0.001
2018.09.27 16:43:00,0.94272,0.94282,0.9426600000000001,0.9428,0.001,-0.001,0.002,0.001,-0.002,0.002,0,0

Я пытаюсь проверить, равен ли последний индекс, который является временем, текущемувремя согласно IST.Время в файле имеет формат GMT.
Пожалуйста, помогите мне проверить условие для проверки времени.Дайте мне знать, что мне не хватает.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

Попробуйте следующее, используя pytz.Как я понимаю ваш вопрос, что у вас есть CSV со временем в GMT, и вы хотите сравнить это время со временем в Индии?

Так как вы не хотите конвертировать весь индекс в DatetimeIndex, вы можете просто получитьпоследнее значение, предложенное Sandeep выше, и преобразование его в datetime

from datetime import datetime
from pytz import timezone

dt_gmt = datetime.strptime(df.index[-1], '%Y.%m.%d %H:%M:%S')
dt_ist = datetime.fromtimestamp(dt.timestamp(), tz=timezone('Indian/Reunion'))

, а затем сравните dt_gmt с dt_ist.Возможно, вам придется использовать другое имя часового пояса - вы можете найти список здесь Есть ли список часовых поясов Pytz?

0 голосов
/ 28 сентября 2018

Попробуйте использовать следующее:

>>> df = pd.read_csv("Real.csv",encoding='utf-16',index_col=0)
>>> pd.to_datetime(df.index[-1]).to_pydatetime() == datetime.now().replace(tzinfo=None,microsecond=0,second=0)+ timedelta(hours=-2,minutes=-30)
True

Это сработало для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...