У меня есть данные временных рядов, которые я хочу выбрать в различных точках и добавить средства в список.
Вот пример кода:
import pandas as pd
dates = pd.date_range('20190101',periods=100, freq="min")
timeSeries = pd.DataFrame({"Time":dates,"Values":list(range(1,101))})
timeSeries.index = timeSeries.Time
startTimes = pd.to_datetime(["2019-01-01 00:00:00",
"2019-01-01 00:25:00",
"2019-01-01 00:50:00",
"2019-01-01 01:15:00"])
avgTime = pd.to_timedelta("10min")
samples = pd.DataFrame({"st":startTimes})
samples["means"] = samples.apply(lambda x: timeSeries.loc[x["st"]:x["st"]+avgTime,"Values"].mean(),axis=1)
print(samples["means"])
, который возвращает
0 6.0
1 31.0
2 56.0
3 81.0
Name: means, dtype: float64
Есть ли способ сделать это векторизованным способом, т.е. избегать использования samples.apply ()?