У меня есть кадр данных с именем differ_vt
, который я хотел применить groupby
и суммировать по столбцам 'CO_FIPS'
и 'FLD_ZONE'
:
FLD_ZONE AWPOP_1 Area_SQMI_1 AWHU_1 AWPOP_2 Area_SQMI_2 AWHU_2 CO_FIPS
0 A 18.1 23.1 101.3 3.0 23.1 3.1 50001
1 AE 6.7 13.5 58.6 0.03 13.5 4.8 50001
2 N 1.3 1.2 23.0 7.1 1.2 8.3 50001
3 X 0.0 38.5 0.0 0.0 38.5 0.0 50001
4 X500 4.6 44.5 4.8 4.8 44.5 2.1 50001
Я создаю новый кадр данных для сгруппированных и итоговые данные:
vt_sum = differ_vt_outer.groupby(['CO_FIPS', 'FLD_ZONE']).agg({'AWPOP_1': 'sum', 'Area_SQMI_1': 'sum', 'AWHU_1': 'sum', 'AWPOP_2': 'sum', 'Area_SQMI_2': 'sum', 'AWHU_2': 'sum'})
Новый фрейм данных выглядит примерно так:
vt_sum.head()
>
AWPOP_1 Area_SQMI_1 AWHU_1 AWPOP_2 Area_SQMI_2 AWHU_2
CO_FIPS FLD_ZONE
50001 A 2335.8 79.7 1095.1 2334.0 79.7 1094.1
AE 2134.5 74.1 1179.5 2134.5 74.1 1179.5
N 96.8 0.2 13.1 94.0 0.2 11.7
X 68119.7 1333.2 30623.9 68115.5 1333.2 30621.9
X500 339.2 4.4 149.8 339.2 4.4 149.8
50003 A 1006.9 4.8 542.7 1006.9 4.8 542.7
AE 2441.6 2.3 1265.0 2441.6 2.3 1265.0
AO 3.1 0.0 3.5 3.1 0.0 3.5
X 34896.6 700.4 20075.2 34896.6 700.4 20075.2
Теперь я хочу связать итоговый фрейм данных с исходным diff_vt
фреймом данных и создать новые столбцы. на основе суммированных значений. Например, для CO_FIPS = 50001
и FLD_ZONE = A
я хочу добавить столбец с именем Tot_AWPOP_1
, который имеет значение 2335,8.
differ_vt_outer['Tot_AWPOP_1'] = vt_sum['AWPOP_1'].values
Однако, когда я запускаю это, я получаю ошибку:
ValueError: длина значений не соответствует длине индекса
Как я могу решить эту проблему?