在日期时间DataFrame中返回每天唯一列条目的数量

时间:2018-01-14 21:55:03

标签: python pandas datetime dataframe

我有一个如下所示的DataFrame:

            Col1    Col2        Col3    Col4
Datetime                                    
2016-11-01     1    Male  01/11/2016  Durham
2016-11-01     2  Female  01/11/2016  Durham
2016-11-02     3  Female  02/11/2016     New
2016-11-02     4    Male  02/11/2016     Ips
2016-11-03     5    Male  03/11/2016  Durham

我想要做的是,每天返回Col4条目的数量,因此返回如下信息:

            ColA        ColB
Datetime                                    
2016-11-01     Durham   2
2016-11-02     New      1
2016-11-02     Ips      1
2016-11-03     Durham   1

即。达勒姆在1号发生了两次,所以它的数量为2.新的和Ips都发生在2号,所以他们都计数为1.最后达勒姆在3日发生一次,所以它将被计算在内1。

最终我试图定义一个“频率”,以便我可以按区域定义“热点”。如果每天至少发生一次,那么我将其称为“热点”。

1 个答案:

答案 0 :(得分:2)

您可以在groupbyDatetime)+ Col4上使用count

df = df.groupby([df.index, df.Col4]).Col4.count().reset_index(level=1, name='ColB')

或者,

df = df.groupby([df.index, df.Col4]).size().reset_index(level=1)

接下来,设置列名称:

df.columns = ['ColA', 'ColB']

df

              ColA  ColB
Datetime                
2016-11-01  Durham     2
2016-11-02     Ips     1
2016-11-02     New     1
2016-11-03  Durham     1