我有以下"源"数据框
Value
Date
2022-01-01 26
2022-01-02 87
2022-01-03 4
2022-01-04 65
2022-01-05 89
2022-01-06 88
2022-01-07 82
2022-01-08 60
2022-01-09 8
2022-01-10 22
在另一个"输出"数据框中,我有4列定义了2个日期范围.如您所见,range1始终是定义的,而range2仅在某些行中定义:
range1_lower range1_upper range2_lower range2_upper
0 2022-01-02 2022-01-03 2022-01-06 2022-01-07
1 2022-01-03 2022-01-06 NaN NaN
在输出df中,我需要添加一个"average"列,如果日期在两个范围中的either个范围内,那么对于每一行,我得到源df的"Value"列的平均值.这与Excel中的AVERAGEIFS函数类似.
例如,对于第0行,我需要得到范围1(2022-01-02至2022-01-03)或范围2(2022-01-06至2022-01-07)内所有值的平均值.
对于第1行,由于没有定义range2,我只需要得到range1(2022-01-03到2022-01-06)内所有值的平均值.
这是预期输出:
range1_lower range1_upper range2_lower range2_upper average
0 2022-01-02 2022-01-03 2022-01-06 2022-01-07 65.25
1 2022-01-03 2022-01-06 NaN NaN 61.50
有办法做到这一点吗?