Datetime.strftime () не изменяется должным образом? - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь изменить объекты даты и времени в списке списков на строки, используя strftime, но преобразование в строку работает неправильно. В частности, я пытаюсь отформатировать его как% H:% M

Я проанализировал файл Excel с помощью Pandas и преобразовал DataFrame в список списков с помощью NumPy.

Вот соответствующие разделы моего кода

import pandas as pd
import datetime
import time

... 

dataframe = pd.read_excel(download_file, skiprows=4)
location_logs = dataframe.to_numpy().tolist()

for log in location_logs:
    for val in log:
        if type(val) == datetime.datetime:
            val = val.strftime("%H:%M")

Цикл правильно идентифицирует объекты даты и времени, так как оператор print внутри условного сопоставления данных и даже печатает отформатированную строку вместо объекта datetime.

Однако, если я печатаю список, такой как location_logs[0], он печатает объект datetime, найденный во вложенном списке, вместо строки, то есть печатает datetime.datetime(2019,6,17,23,59) вместо моего ожидаемого 23:59

Собираюсь ли я неправильно конвертировать объекты даты и времени? Возможно ли, что размер списка списков вызывает проблему? Есть ~ 62 тыс. Списков с 7 элементами в каждом списке.

1 Ответ

1 голос
/ 20 июня 2019

Может быть попробовать что-то вроде:

location_logs = [datetime.datetime(2009, 9, 12, 11, 23, 44), datetime.datetime(2019, 7, 10, 6, 21, 15)]

for i in range(len(location_logs)):
    if type(location_logs[i]) == datetime.datetime:
        location_logs[i] = location_logs[i].strftime("%H:%M")

location_logs

Результат:

['11:23', '06:21']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...