Преобразование списка дат в виде строки в PANDAS DatetimeIndex

#python #pandas #datetimeindex

#python #pandas #datetimeindex

Вопрос:

У меня есть серия дат PANDAS (в виде строк) и частот в виде целых чисел:

 date    
2020-02-02  24
2020-02-03  43
2020-02-07  465
2020-02-08  123
2020-02-09  234
  

Но они мне нужны как выходные данные событий в приведенном ниже коде:

 all_days = pd.date_range('1/01/2020', periods=300, freq='D')
days = np.random.choice(all_days, 200)
events = pd.Series(np.random.randn(len(days)), index=days)
  

Я имею в виду сохранить свои данные, но изменить тип, чтобы я мог использовать их в другом фрагменте кода. Заранее благодарю.

Комментарии:

1. Будет ли добавление второго столбца и преобразование их туда работать?

2. Моя проблема в том, что я не знаю, как работать с серией PANDAS, нет имени столбца, ничего.

3. Просто добавьте его в свой фрейм данных перед созданием ряда

4. Если вам просто нужна случайная строка, вы можете случайным образом выбрать из индекса, а затем отобразить ее обратно в свой DF.

5. Вы можете использовать pandas.to_datetime для преобразования индекса в виде str в date. Вы можете получить доступ к индексу, создающему dataframe.index pandas.pydata.org/pandas-docs/stable/reference/api /…

Ответ №1:

Спасибо вам всем за помощь. Мне понравился приведенный ниже код:

 import numpy as np; np.random.seed(sum(map(ord, 'calmap')))
import pandas as pd
import calmap

all_days = pd.date_range('1/01/2020', periods=300, freq='D')
days = np.random.choice(all_days, 200)
date_index = pd.to_datetime(dates_count.index)
maximum = max(dates_count.values)
minimum = min (dates_count.values)
events = pd.Series(((dates_count.values-minimum)*2/(maximum - minimum))-1, index=date_index)