计算日期范围内出现的次数

简体中文
max_date = datetime.today().strftime('%d-%m-%Y')
min_date = "06-08-2021"

我有一个看起来像这样的df。目前它只有 1 行:

name       value 
Name1      23

然后我有另一个数据集df2,如下所示:

date            group 
07-08-2021      A
07-08-2021      A
06-08-2021      A
09-08-2021      A
07-08-2021      A
07-08-2021      B
06-08-2021      B
03-08-2020      A

我想遍历 and 的所有行,df2如果日期在 and 的范围内min_datemax_date我想做 A 和 B 的所有出现的累积和。

这意味着我想计算特定组类型在该范围内出现的次数。然后我想将该值添加到我的第一个数据集中。像这样的东西:

name       value     count_A        count_B   
Name1      23        5              2

注意最后一行:

03-08-2020      A

不计算在内,因为日期不在范围内。

编辑:样本df:

details = {
    'Name' : ['Name1'],
    'Value' : [23],
}
df1 = pd.DataFrame(details)

details = {
    'Date' : ['07-08-2021', '07-08-2021', '06-08-2021', '09-08-2021','07-08-2021','07-08-2021','06-08-2021','03-08-2020'],
    'Group' : ['A', 'A', 'A', 'A','A','B','B','A'],
}
df2 = pd.DataFrame(details)
卡维刷
details = {
    'Date' : ['07-08-2021', '07-08-2021', '06-08-2021', '09-08-2021','07-08-2021','07-08-2021','06-08-2021','03-08-2020'],
    'Group' : ['A', 'A', 'A', 'A','A','B','B','A'],
}
details1 = {
    'Name' : ['Name1'],
    'Value' : [23],
}
df1 = pd.DataFrame(details1)  
    
df = pd.DataFrame(details)
max_date = datetime.today().strftime('%d-%m-%Y')
min_date = "06-08-2021"
df = df[(df['Date'] <= max_date) & (df['Date'] > min_date)]
df = df.groupby('Group').count()
df1_transposed = df.T
df1_transposed = df1_transposed[['A', 'B']]
df1_transposed = df1_transposed.reset_index()
df1 = pd.merge(df1, df1_transposed, left_index=True, right_index=True)
df1 = df1[['Name', 'Value', 'A', 'B']]
df1.rename(columns = {'A':'count_A', 'B':'count_B'}, inplace = True)

print(df1)

输出

Name  Value  count_A  count_B
  Name1     23        4        1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章