У меня есть фрейм данных - для примера данных каждый день имеет только 10 минут:
Date Close
0 2019-06-20 07:00:00 2927.25
1 2019-06-20 07:05:00 2927.00
2 2019-06-20 07:10:00 2926.75
183 2019-06-21 07:00:00 2932.25
184 2019-06-21 07:05:00 2932.25
185 2019-06-21 07:10:00 2931.00
366 2019-06-24 07:00:00 2941.75
367 2019-06-24 07:05:00 2942.25
368 2019-06-24 07:10:00 2941.50
549 2019-06-25 07:00:00 2925.50
550 2019-06-25 07:05:00 2926.50
551 2019-06-25 07:10:00 2926.50
732 2019-06-26 07:00:00 2903.25
Я хочу получить дневной диапазон цены закрытия.
Я сгруппировал данные по дням и получите min max close:
rangeofday = df.groupby(pd.Grouper(key='Date', freq='1D')).agg({'Close':[np.min, np.max]})
rangeofday = rangeofday.dropna()
Close
amin amax
Date
2019-06-20 2926.75 2927.25
2019-06-21 2931.00 2932.25
2019-06-24 2941.50 2942.25
2019-06-25 2925.50 2926.50
2019-06-26 2903.25 2904.00
... ... ...
Пока все хорошо, но происходит то, что имена столбцов странные и почему-то недоступны по имени.
rangeofday.amin
or
rangeofday.Closeamin
= 'DataFrame' object has no attribute 'amin'
Так что я могу получить к ним доступ с помощью ilo c:
rangeofday.iloc[:, [1]]
Close
amax
Date
2019-06-20 2927.25
2019-06-21 2932.25
2019-06-24 2942.25
2019-06-25 2926.50
Теперь я пытаюсь вычесть min из max:
rangeofday['range'] = (rangeofday.iloc[:, [0]] - rangeofday.iloc[:, [1]])/0.25
и получаю сообщение об ошибке:
Wrong number of items passed 2, placement implies 1
Что это значит и как обойти эту ошибку?