Python 仅在一天结束前查找dataframe列的平均值(datetime索引)
我有一个Python 仅在一天结束前查找dataframe列的平均值(datetime索引),python,datetime,pandas,dataframe,Python,Datetime,Pandas,Dataframe,我有一个DataFrame对象,它由datetime索引。让我们假设我的对象看起来像这样: DateTime A 2016-07-01 08:30:00 5 2016-07-01 09:28:17 6 2016-07-01 14:09:11 9 2016-07-01 22:33:44 10 2016-07-02 08:30:00 20 2016-07-02 15:00:00 30 我想创建一个新的列,该列的平均值仅从具有时间戳的数
DataFrame
对象,它由datetime
索引。让我们假设我的对象看起来像这样:
DateTime A
2016-07-01 08:30:00 5
2016-07-01 09:28:17 6
2016-07-01 14:09:11 9
2016-07-01 22:33:44 10
2016-07-02 08:30:00 20
2016-07-02 15:00:00 30
我想创建一个新的列,该列的平均值仅从具有时间戳的数据点(行)计算,直到一天结束。在本例中,生成的dataframe对象如下所示:
DateTime A B
2016-07-01 08:30:00 5 7.5
2016-07-01 09:28:17 6 8.33333
2016-07-01 14:09:11 9 9.5
2016-07-01 22:33:44 10 10
2016-07-02 08:30:00 20 25
2016-07-02 15:00:00 30 30
我曾想过创建一个单独的列来获得一天的结束时间,按时间切片数据(df['a'].loc[df['DateTime']:df['end\u of_day']]].mean()
),但我发现不能根据一系列数据对数据进行可变切片。有没有人有任何有效的方法来做到这一点
提前谢谢你 创建自定义函数以
应用
def nowTilEODMean(d):
cond1 = df.index >= d.name
cond2 = df.index.day == d.name.day
return df.A.loc[cond1 & cond2].mean()
df['B'] = df.apply(nowTilEODMean, axis=1)
df