У меня есть набор данных, который содержит месячный ВВП за 2000-2016 годы, индексированный по штатам и городам. Столбцы, представляющие ВВП, отформатированы как «год-месяц», поэтому, например, «2000-01» представляет январь 2000 года. Я пытаюсь получить ВВП по финансовому кварталу, где каждый квартал является средним значением ВВП соответствующего месяца.
Ниже приведен фрагмент фрейма данных (игнорируйте значения только для примера).
State City 2000-01 2000-02 2000-03 2000-04 2000-05 2000-06
Alabama Adamsville 1000 1005 1020 1119 1125 1000
Alabama Alabaster 1093 1312 1542 1624 1134 1953
Alabama Axis 18324 98174 14047 27343 43234 12434
Мой ожидаемый результат следующий (опять же, значения составлены). Например, 2000q1 является средним значением столбцов 2000-01, 2000-02 и 2000-03.
State City 2000q1 2000q2
Alabama Adamsville 1010 1006
Alabama Alabaster 1100 1750
Alabama Axis 15673 19849
Я пробовал несколько разных способов, в частности:
Поскольку выходной фрейм данных будет иметь 64 разных квартала, для каждого квартала неэффективно делать следующее:
df['2000q1']=df[['2000-01', '2000-02', '2000-03']].mean(axis=1)
В другой попытке я изменил все имена столбцов, чтобы они представляли квартал, в котором они должны находиться, в результате три одинаковых имени столбца (но не базовые данные) для каждого квартала, как показано ниже. Поскольку имена столбцов были идентичны, я затем пытался найти среднее значение для каждого трио одинаковых имен столбцов.
State City 2000q1 2000q1 2000q1 2000q2 2000q2 2000q2
Alabama Adamsville 1000 1005 1020 1119 1125 1000
Alabama Alabaster 1093 1312 1542 1624 1134 1953
Alabama Axis 18324 98174 14047 27343 43234 12434