Python 在日期和时间列中按天分组并取平均值

Python 在日期和时间列中按天分组并取平均值,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有一个类似图中所示的df,我想: 按几年的天数分组(2006年至2010年,示例:组(2006-01-012007-01-012008-01-012009-01-0120010-01-01),然后 取这几天压力柱的平均值(2006-01-01、2007-01-01、2008-01-01、2009-01-01、20010-01-01),然后 仅使用压力值的平均值生成一个新列 在这种情况下,我们需要按月份和日期分组的原始数据行数,这可以通过使用transform函数创建和添加列来实现 im

我有一个类似图中所示的df,我想:

  • 按几年的天数分组(2006年至2010年,示例:组(2006-01-012007-01-012008-01-012009-01-0120010-01-01),然后

  • 取这几天压力柱的平均值(2006-01-01、2007-01-01、2008-01-01、2009-01-01、20010-01-01),然后

  • 仅使用压力值的平均值生成一个新列


  • 在这种情况下,我们需要按月份和日期分组的原始数据行数,这可以通过使用transform函数创建和添加列来实现

    import pandas as pd
    import numpy as np
    
    np.random.seed(20210430)
    df = pd.DataFrame({'Date':pd.to_datetime(pd.date_range('2006-01-01','2011-01-01', freq='1d')), 'Pressure':np.random.randint(40,60,(1827,))})
    
    # Check the numbers beforehand.
    df[(df.Date.dt.month == 1) & (df.Date.dt.day == 1)]
    
        Date    Pressure
    0       2006-01-01  51
    365     2007-01-01  45
    730     2008-01-01  53
    1096    2009-01-01  45
    1461    2010-01-01  59
    1826    2011-01-01  40
    
    df['mean'] = df.groupby([df.Date.dt.month, df.Date.dt.day])['Pressure'].transform('mean')
    
    # Numerical verification after the fact
    df[(df.Date.dt.month == 1) & (df.Date.dt.day == 1)]
    
        Date    Pressure    mean
    0       2006-01-01  51  48.833333
    365     2007-01-01  45  48.833333
    730     2008-01-01  53  48.833333
    1096    2009-01-01  45  48.833333
    1461    2010-01-01  59  48.833333
    1826    2011-01-01  40  48.833333
    

    请以文本格式共享输入和所需输出的示例。请提供一个示例,包括输入和预期输出,以及您尝试的解决方案。你可以回答这个问题。如果我的回答对你有帮助,请考虑接受它作为正确的答案。