День месяца, разделенный в словаре Python pandas

Sep 27 2020

У меня следующий список акций:

Для каждого из них я хотел бы разделить по дням месяца в виде пояснительного рисунка:

С помощью этого разделения я могу рассчитать совокупную доходность за каждый день и разделить совокупную доходность на максимальную и минимальную прибыль для каждого символа акций.

Я делаю следующее (пример из другого списка акций) от SO: Вызов отчета из словаря фреймов данных :

data_dict = dict()  # create an empty dict here
for k, df in df_dict.items():
    df_dict[k]['Return %'] = df.iloc[:, 0].pct_change(-1)*100

    # aggregate the max and min of Return
    mm = df_dict[k]['Return %'].agg(['max', 'min'])  

    # add it to the dict, with ticker as the key
    data_dict[k] = {'max': mm.max(), 'min': mm.min()}  

# convert to a dataframe if you want
mm_df = pd.DataFrame.from_dict(data_dict, orient='index')

# display(mm_df)
          max      min
aapl  8.70284 -4.90070
msft  6.60377 -4.08443

Это приводит к линейному анализу акций в списке без разделения по дням, как я хотел бы сделать, как показано на рисунке выше.

Вопрос:

  • Как я могу вставить шаг для разделения по дням месяца, а затем выполнить вышеуказанный код?

Ответы

kyc12 Sep 28 2020 at 23:40

Вы можете использовать pandas.groupbyи использовать datetime.date()как поле группировки. Затем вы можете использовать sumоператор для объекта группы для расчета дневной доходности. В этом сообщении показано использование groupbyс datetime