1 回答
TA贡献1847条经验 获得超7个赞
这是与分组相关的部分错误MutiIndex in columns。
如果使用MultiIndex in index,它会进行小的修改 - 删除用于分组的级别以避免重复级别。
您的解决方案通过 transpose for MultiIndex in index、apply function 和 transpose back 修改:
def f(x):
idx = pd.IndexSlice
x.loc[idx[x.name[0], x.name[1], 'V'], :]=0
x.index = x.index.droplevel([0,1])
return x
df = df.T.groupby(level=[0,1], axis=0).apply(f).T.astype(int)
print (df)
E T
X Y W Z
r s V r s V r s V r s V
a 0 1 0 2 3 0 6 7 0 4 5 0
b 8 9 0 10 11 0 14 15 0 12 13 0
c 16 17 0 18 19 0 22 23 0 20 21 0
d 24 25 0 26 27 0 30 31 0 28 29 0
def f(x):
idx = pd.IndexSlice
x.loc[idx[x.name[0], x.name[1], 'V'], :]=0
return x
df = df.T.groupby(level=[0,1], axis=0).apply(f).T.astype(int)
print (df)
E T
X Y W Z
E E T T
X Y W Z
r s V r s V r s V r s V
a 0 1 0 2 3 0 6 7 0 4 5 0
b 8 9 0 10 11 0 14 15 0 12 13 0
c 16 17 0 18 19 0 22 23 0 20 21 0
d 24 25 0 26 27 0 30 31 0 28 29 0
添加回答
举报