我有一个如下所示的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。
最终我试图定义一个“频率”,以便我可以按区域定义“热点”。如果每天至少发生一次,那么我将其称为“热点”。
答案 0 :(得分:2)
您可以在groupby
,Datetime
)+ 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