Перепишите datetimeindex для таймсерий для новой Pandas версии - PullRequest
2 голосов
/ 14 июля 2020

Я разрабатываю модель машинного обучения для прогнозирования временных рядов. Я написал общую функцию для создания временных рядов для моих данных. Когда я писал это, метод datetimeindex в pandas использовал разные параметры, и моя функция выполнялась правильно. В этот метод были внесены изменения, и я не уверен, как переписать этот метод datetimeindex? Может кто-нибудь помочь? Вот полная функция таймсерии, которую я написал:

def make_time_series(mean_power_df, years, freq='D', start_idx=4):
    '''Creates as many time series as there are complete years. This code
       accounts for the leap year, 2016.
      :param Daily_Price_mean: A dataframe of bitcoin weighted price, averaged by day.
          This dataframe should also be indexed by a datetime.
      :param years: A list of years to make time series out of, ex. ['2013', '2014'].
      :param freq: The frequency of data recording (D = daily)
      :param start_idx: The starting dataframe index of the first point in the first time series.
          The default, 16, points to '2013-01-01'. 
      :return: A list of pd.Series(), time series data.
      '''

    
# store time series
time_series = []

# store leap year in this dataset
leap = '2012'

# create time series for each year in years
for i in range(len(years)):

    year = years[i]
    if(year == leap):
        end_idx = start_idx+366
    else:
        end_idx = start_idx+365

    # create start and end datetimes
    t_start = year + '-01-01' # Jan 1st of each year = t_start
    t_end = year + '-12-31' # Dec 31st = t_end

    # get global consumption data
    data = mean_power_df[start_idx:end_idx]

    # create time series for the year
    index = pd.DatetimeIndex(start=t_start, end=t_end, freq=freq) ## this is the line causing problems, this was based on previous method inputs
    
    time_series.append(pd.Series(data=data, index=index))
    
    start_idx = end_idx

# return list of time series
return time_series

Когда я вызываю эту функцию следующим образом:

group = data.groupby('date') #the data was read and processed...
Daily_Price_mean = group['Weighted_Price'].mean()
full_years = ['2012', '2013', '2014']
freq='D' # daily recordings
# make time series
time_series = make_time_series(Daily_Price_mean, full_years, freq=freq)

, я получаю сообщение об ошибке: TypeError: new () получил неожиданный аргумент ключевого слова 'start'

Может смоне, дайте мне знать, как я могу исправить мою функцию? Спасибо

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