我有一个如下所示的 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
即Durham 在 1 号出现了两次,所以计数为 2。New 和 Ips 在 2 号都出现了一次,所以它们的计数都是 1。最后 Durham 在 3 号出现了一次,所以计数为1.
最终我试图定义一个“频率”,以便我可以按区域定义“热点”。如果某件事每天至少发生一次,那么我将其称为“热点”。
最佳答案
您可以在此处使用 groupby
on (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
关于python - 返回日期时间 DataFrame 中每天唯一列条目的计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48254555/