我有一个多索引数据帧df1
,其中包含三个索引,其值仅属于第一个索引。但是,合并后,数据帧被拆分,导致出现各种0
。
现在,我想用属于第一个索引级别的值替换0
。
这是从数据框中提取的内容:
FID_Weser_Catchments_134_WQ_Stations_FINAL_LAEA... SNR1 gridcode_1
1 6631 2 543738.387186
3 543738.387186
4 543738.387186
6632 1 543738.387186
2 543738.387186
3 543738.387186
4 543738.387186
6633 2 0.000000
3 0.000000
6634 2 0.000000
6636 1 543738.387186
2 543738.387186
3 543738.387186
4 543738.387186
9473 2 543738.387186
3 543738.387186
9673 2 543738.387186
3 543738.387186
4 543738.387186
16054 1 543738.387186
FID_Weser_Catchments...
,SNR1
和gridcode_1
是索引,但是值仅源自index(level=0)
。
总共有133个index(level=0)
,所以我想找到一个通用函数,用附属值替换0
。
答案 0 :(得分:1)
使用Series.mask
替换为MultiIndex
第一级的GroupBy.transform
和GroupBy.first
创建的系列:
first = s.groupby(level=0).transform('first')
s = s.mask(s == 0, first)