У меня есть временной ряд df
, который имеет 2 столбца. Я пытаюсь отбросить все пустые списки из столбцов yearly_cost
, взяв среднее значение списков, содержащих числа с плавающей запятой, для создания единственного значения для каждого отдельного дня. В столбце date
имеется несколько значений для одной и той же даты, и поэтому я пытаюсь объединить все строки на основе этой даты. df
выглядит так:
date yearly_cost
0 2009-01-01 []
1 2009-01-02 [409.45,294.33,394.56]
2 2009-01-03 [403.45,175.30,323.67]
3 2009-01-01 [456.34,355.3,493.5]
4 2009-01-02 []
5 2009-01-03 [295.39, 439.23]
В некоторые дни будет несколько списков, и поэтому мне нужно взять среднее значение по обоим спискам, чтобы создать одно значение.
Я попытался использовать .dropna()
, np.nanmean()
и усреднить списки с ts.yearly_cost = [np.mean(i) if isinstance(i, list) else i for i in ts.yearly_cost]
с конкатенацией по дате.
с .set_index('date').mean(axis=1).reset_index(name='Yearly_Cost')
, который работал для временных рядов в прошлом без пустых списков.
Я хочу, чтобы конечный результат выглядел так:
date yearly_cost
0 2009-01-01 435.05
1 2009-01-02 366.11
2 2009-01-03 327.408
Любая помощь с этим будет принята с благодарностью. Спасибо