Skip to main content
 首页 » 编程设计

python之计算唯一的日期数以计算发生次数

2025年05月04日16lyj

<分区>

想要找到一组值对应的唯一日期的数量。如果 Col1、Col2、Col3 的值相同,那么有多少个实例。 我只能用年、月或日来做,但我想把所有的都结合起来,这样我就可以找到每个唯一的日期(yyyy/mm/dd)。

BldgID  BldgHt  Device  Date 
108     28      760     2018/9/18 
108     28      760     2018/10/5 
108     28      760     2018/10/18 
108     28      760     2018/10/19 
104     36      758     2018/10/2 
104     36      758     2018/11/2 
104     41      758     2018/9/13 
104     41      758     2018/10/3 
104     41      758     2018/10/16 
104     41      758     2018/10/25 
104     41      758     2018/11/3 
104     41      758     2018/11/7 
104     45      758     2018/10/3 
104     45      758     2018/11/3 

通过将 dt.month 更改为 dt.year 或 dt.day,我可以获得年、月或日,但希望整个日期都是明智的。

df_test = df.Date.apply(lambda dt: dt.date()).groupby\ 
([df.BldgID, df.BldgHt, df.Device, df.Date.apply(lambda dt:\     
  dt.month)]).nunique() 
 
df_test.head(10) 

这是按月计算的值。

 BldgID  BldgHt  Device   Date 
 108     28.0    760      9       1 
                          10      3 
 104     36.0    758      10      1 
                          11      1 
         41.0    758      9       1 
                 758      10      3 
                 758      11      2 
         45.0    758      10      1 
         45.0    758      11      1 
 
 Name: Date, dtype: int64 

期望的输出:

BldgID  BldgHt  Device   Total_count 
108     28.0    760           4 
104     36.0    758           2 
        41.0    758           6 
104     45.0    758           2 

Total_count 是每组相应的独特的计数的总和 'BldgID、BldgHt、设备'。

提前致谢。