使用熊猫Groupby

时间:2019-06-26 13:11:37

标签: python pandas group-by pandas-groupby

我有一个MessageProducer messageProducer = session.createProducer(Queue, Queue2); messageProducer.send(Queue, objectMessage); messageProducer.send(Queue2, objectMessage2); 的加密数据,正在尝试查看价格/价格在一天/一周的某个特定时间以另一种方式移动。我有时间戳,是星期几,并且关闭了以前的时间戳,就像下面的示例数据一样。

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 列的想法,现在就像一个新的列来为每天的时间段编号一样。因此,每个星期六的前6小时为Date,依此类推。所以最后我将有28个不同的类别(4个时间段x一周中的7天)。

然后我想要Saturday_1这个新列,并且已经将每个类别的平均回报返回给我。

欢呼

1 个答案:

答案 0 :(得分:2)

假设您的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