Извлечь дату в Python словарь ключа, где ключ имеет тип np.datetime64 - PullRequest
0 голосов
/ 28 января 2020

У меня есть python словарь, в котором все ключи имеют тип np.datetime64. Я только хочу сохранить "yyyy-mm-dd" -часть. Ключи словаря выглядят так:

dict_keys([numpy.datetime64('2018-01-01T00:00:00.000000000') ...

Когда я использую:

import pandas as pd
for key in df.keys():
    key = pd.to_datetime(key)
    key = key.date()
    print(key)

, я получаю это как вывод (что на самом деле это то, что мне нужно, ключи быть):

2018-01-01
2018-01-03
2018-01-06
2018-01-08
2018-01-11

Но это, очевидно, не меняет ключи в моем исходном словаре.

Ответы [ 3 ]

1 голос
/ 28 января 2020

Надеюсь, это сработает: извлечение ключей, преобразование их в строку, разбиение на 'T', архивирование новых ключей со старыми значениями словаря и, наконец, создание нового dict.

new_dict = dict(zip([str(x).split('T')[0] for x in my_dict.keys()], my_dict.values()))
1 голос
/ 28 января 2020

Преобразование объектов даты и времени в строки:

keys = [str(date) for date in my_dict.keys()]
0 голосов
/ 28 января 2020

Вы можете использовать del, а затем создать новый key в вашем l oop. Это должно работать, я считаю:

for key,value in df.items():
    del df[key] #Delete the datetime object, used as key
    key = pd.to_datetime(key) #Trasnform into a datetime object
    key = key.date() #Retain only the date part 
    df[key] = value #Create a key with only the date, keeping the original value for the key
...