Использование Pandas Groupby - PullRequest
0 голосов
/ 26 июня 2019

У меня есть df криптографических данных, и я пытаюсь увидеть, есть ли определенное время дня / недели, когда цены движутся в ту или иную сторону. У меня есть метка времени, день недели и возврат из предыдущих меток времени, как в примере с данными ниже.

Date                  Day       Return
2019-06-22 01:00:00   Saturday -0.046910
2019-06-22 07:00:00   Saturday -0.018756
2019-06-22 13:00:00   Saturday  0.036842
2019-06-22 19:00:00   Saturday  0.000998
2019-06-23 01:00:00     Sunday  0.017672
2019-06-23 07:00:00     Sunday  0.021102
2019-06-23 13:00:00     Sunday -0.014737
2019-06-23 19:00:00     Sunday -0.039085
2019-06-24 01:00:00     Monday  0.009690
2019-06-24 07:00:00     Monday -0.004367
2019-06-24 13:00:00     Monday -0.005342
2019-06-24 19:00:00     Monday  0.001060
2019-06-25 01:00:00    Tuesday -0.027738
2019-06-25 07:00:00    Tuesday -0.001599
2019-06-25 13:00:00    Tuesday  0.006247
2019-06-25 19:00:00    Tuesday -0.036937
2019-06-26 01:00:00  Wednesday -0.064866
2019-06-26 07:00:00  Wednesday  0.012319

Моя первая проблема - временная метка, которая сбивает с толку. Поскольку я получаю данные из разных бирж, у многих из них метка времени разная, поэтому я отказался от попытки стандартизировать столбец Date и теперь просто хочу новый столбец, который нумерует период в каждом дне. Таким образом, первые 6 часов в каждую субботу будут Saturday_1 и так далее. В итоге у меня будет 28 разных категорий (4 периода по 7 дней в неделю).

То, что я тогда хотел бы, - это groupby этот новый столбец, и он вернул мне среднюю доходность для каждой категории.

Приветствия

1 Ответ

2 голосов
/ 26 июня 2019

Предполагая, что ваш столбец Day правильный:

# ignore if already datetime
df.Date = pd.to_datetime(df.Date)

# hour block in the day
s = df.Date.dt.hour//6 + 1

# new column
df['group'] = df['Day'] + '_' + s.astype(str)

Выход:

0      Saturday_1
1      Saturday_2
2      Saturday_3
3      Saturday_4
4        Sunday_1
5        Sunday_2
6        Sunday_3
7        Sunday_4
8        Monday_1
9        Monday_2
10       Monday_3
11       Monday_4
12      Tuesday_1
13      Tuesday_2
14      Tuesday_3
15      Tuesday_4
16    Wednesday_1
17    Wednesday_2
Name: group, dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...