У меня есть два мультииндексированных фрейма данных df1
с тремя уровнями и df2
с двумя.Индексы получены из df1.groupby([col_1, col_2, col_3])
и df2.groupby([col_1, col_2])
.col_1
и col_2
одинаковы в обоих кадрах данных, но из-за третьего уровня в df1
разной длины;df1
имеет 2425 строк и df2
783.
Я пытаюсь объединить оба кадра данных так, чтобы df2
распространился так, чтобы длина индексов уровня 0 и 1 соответствовалаодинаковой длины в df1
и df2
, поэтому результирующий кадр данных также имеет 2425 строк.
Я использовал df3 = df1.merge(df2, left_index=True, right_index=True)
, но результирующий кадр данных остается только с 2385 строками.Я использовал df3 = pd.concat([df1, df2], axis=1)
, но поднял ValueError: operands could not be broadcast together with shapes
.
Есть ли элегантный способ решить эту проблему?Я ценю любую помощь
РЕДАКТИРОВАТЬ: образец данных
df1:
Areaclccat1990 ... Areaclccat2012
FID_Weser_Catchments_134_WQ_Stations_FINAL_LAEA... SNR1 gridcode_1 ...
0 3152 1 0.002764 ... 0.007248
2 0.980105 ... 0.972941
3 0.005049 ... 0.017166
4 0.012082 ... 0.002645
3155 1 NaN ... 0.000003
2 1.000000 ... 0.996788
3 NaN ... 0.003209
3255 1 NaN ... 0.058950
2 0.989654 ... 0.941050
4 0.010346 ... NaN
5958 1 NaN ... 0.004463
2 0.955098 ... 0.958452
3 0.014408 ... 0.027835
4 0.030494 ... 0.009250
5966 1 0.007184 ... 0.011448
2 0.955668 ... 0.949824
3 0.037148 ... 0.038728
5970 1 NaN ... 0.001141
2 0.979750 ... 0.930495
3 0.011281 ... 0.068364
df2:
Areaclccat1990 ... Areaclccat2012
FID_Weser_Catchments_134_WQ_Stations_FINAL_LAEA... SNR1 ...
0 3152 1654.636456 ... 1550.415658
3155 1820.433231 ... 1758.125539
3255 43.056576 ... 39.436385
5958 2306.806057 ... 2120.791289
5966 7.444977 ... 5.763853
5970 3087.717009 ... 2615.253450
6435 240.342745 ... 255.033888
6534 647.293171 ... 621.116222
6535 9929.136397 ... 9653.021903
6611 947.912232 ... 754.783147
6631 13528.073523 ... 13545.356498
6632 14023.097062 ... 13897.394309
6633 5913.895620 ... 5398.585720
6634 17463.795952 ... 17159.138628
6635 10791.618411 ... 10306.725199
6636 9664.138661 ... 9742.442935
9473 131.268559 ... 128.477078
9672 107.831005 ... 102.464959
9673 13.044806 ... 29.566828
16051 443.810802 ... 428.493495