Вы можете использовать pd.Grouper
с freq
из 5 минут (freq='5min'
):
import pandas as pd
data = '''\
Event time,Event type,Ignore,Price
1526076933917,kline,0,18202362
1526076937493,kline,0,18202367'''
df = pd.read_csv(pd.compat.StringIO(data))
df['Event time'] = pd.to_datetime(df['Event time'], unit='ms')
df['avgPrice'] = (df.groupby(pd.Grouper(freq='5min', key='Event time'))['Price']
.transform('mean'))
print(df)
И вы получите:
Event time Event type Ignore Price avgPrice
0 2018-05-11 22:15:33.917 kline 0 18202362 18202364.5
1 2018-05-11 22:15:37.493 kline 0 18202367 18202364.5