我根据created_at_hour
对数据进行分组并计算总和。这样做我没有问题。但是,我想获得一个只包含这两列的新数据框。我怎么能这样做?
以下是我的数据示例
created_at, user_id
xxx, x
这就是我到目前为止所做的。
data.created_at = pd.to_datetime(data.created_at)
data['created_at_minute'] = data.apply(lambda row: row['created_at'].minute, axis=1)
data['created_at_day'] = data.apply(lambda row: row['created_at'].day, axis=1)
data['created_at_hour'] = data.apply(lambda row: row['created_at'].hour, axis=1)
group_by = data.groupby(['created_at_hour']).agg(['count'])
group_by.plot()
我得到了这样的图表。
一切都很好,但现在我想要一个只有created_at_hour
的新数据框和来自count
的新groupby
列,我该怎么做?这是迄今为止的结果。
答案 0 :(得分:2)
您可以data.groupby(['created_at_hour']).created_at.agg(['count'])
仅对一列进行聚合(在本例中为created_at
)。然后,生成的DataFrame将只有一列。它仍将具有MultiIndex列索引,因为您使用了.agg(['count'])
(传递单元素列表)。如果您只想进行一次汇总,则可以使用.agg('count')
或.count()
。