如何根據 input2 中的日期時間與 input1 日期時間視窗之間的重疊來平均 input2 中的值。
輸入1
2013-01-01 02:00:00 2013-01-02 03:00:00
2013-01-01 04:00:00 2013-01-01 04:30:00
2013-01-02 04:00:00 2013-01-01 04:30:00
輸入2
2013-01-01 02:01:00 10
2013-01-01 02:02:00 20
2013-01-01 02:03:00 30
2013-01-01 02:04:00 40
2013-01-02 02:04:00 40
預期產出
2013-01-01 02:00:00 2013-01-02 03:00:00 25
uj5u.com熱心網友回復:
注意。為了清楚起見,我對您的示例進行了一些更改。
您可以使用IntervalIndex來映射日期范圍groupby.mean:
idx = pd.IntervalIndex.from_arrays(pd.to_datetime(df1['date1']),
pd.to_datetime(df1['date2']))
mapper = pd.Series(idx, index=idx)
df2.groupby(mapper[pd.to_datetime(df2['date'])].values)['value'].mean()
輸出:
(2013-01-01 02:00:00, 2013-01-02 03:00:00] 25.0
(2013-01-02 04:00:00, 2013-01-02 04:30:00] 40.0
Name: value, dtype: float64
使用的輸入:
# df1
date1 date2
0 2013-01-01 02:00:00 2013-01-02 03:00:00
1 2013-01-01 04:00:00 2013-01-01 04:30:00
2 2013-01-02 04:00:00 2013-01-02 04:30:00
# df2
date value
0 2013-01-01 02:01:00 10
1 2013-01-01 02:02:00 20
2 2013-01-01 02:03:00 30
3 2013-01-01 02:04:00 40
4 2013-01-02 04:04:00 40
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/516250.html
標籤:熊猫约会时间
