在将四个多索引表与每年的 kg/ha 数据连接起来后,我最终得到一个包含 22617 行和 144 列的数据框。我想要做的是找到每个索引/年份组合的最大值,以获得一个包含 36 列的数据框。这是一个包含两列初始数据帧的数据示例:
Y1980 Y1981 Y1980 Y1981
FID_CATCHM CCA_2 GRIDCODE
0 1059.0 2 21.70426 22.058224 21.70426 22.058224
3 21.70426 22.058224 0.00000 0.000000
4 0.00000 0.000000 21.70426 22.058224
1 1059.0 2 0.00000 0.000000 21.70426 22.058224
4 21.70426 22.058224 21.70426 22.058224
2 1001.0 2 20.71299 21.058432 20.71299 21.058432
3 0.00000 0.000000 20.71299 21.058432
1054.0 2 20.25414 20.283833 20.25414 20.283833
4 0.00000 0.000000 20.25414 20.283833
1059.0 2 21.70426 22.058224 21.70426 22.058224
3 21.70426 22.058224 21.70426 22.058224
4 21.70426 22.058224 21.70426 22.058224
3 1059.0 1 21.70426 22.058224 0.00000 0.000000
2 21.70426 22.058224 21.70426 22.058224
3 21.70426 22.058224 21.70426 22.058224
4 21.70426 22.058224 21.70426 22.058224
4 1058.0 1 0.00000 0.000000 23.79386 24.201496
2 23.79386 24.201496 23.79386 24.201496
3 0.00000 0.000000 0.00000 0.000000
4 23.79386 24.201496 23.79386 24.201496
我试图做的是使用面具
df_max = (df
.groupby(['FID_CATCHM',
'CCA_2', 'GRIDCODE'])
.max())
df_mask = df_max.max(axis=1).to_frame('maximum')
但输出与连接的数据帧相同。如何做到这一点?我感谢每一个帮助。
我认为你需要max
每列,如果有必要然后每多索引:
df = df.max(level=0, axis=1).max(level=[0,1,2], axis=0)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句