这是我的问题示意图。
按如下所示为数据框运行“ groupby”或“ pivot_table”后,得到了具有“ A”,“ B”索引的数据框②。但是,我不需要更多数据。因此,我想在特定索引级别汇总数据。
然后我可以得到最后一个数据帧③。 b应该总结e \ f索引数据,1 + 1 = 2
此功能类似于Excel中的折叠行为。我检查了文档(pivot_table),但“边距”此参数不符合此要求。
谢谢!
答案 0 :(得分:0)
我不知道这样的功能,但这是一种解决方法:
df
C
A B
a p 1
q 1
d r 2
s 2
b t 3
v 3
w 3
c x 4
y 4
fld=["d","b","c"]
nfidx=df.index.levels[0].difference(fld)
Index(['a'], dtype='object', name='A')
df2= df.loc[fld].groupby("A").sum()
C
A
b 9
c 8
d 4
mi= pd.MultiIndex.from_product([df2.index,[np.nan]],names=["A","B"])
MultiIndex([('b', nan),
('c', nan),
('d', nan)],
names=['A', 'B'])
df2.index=mi
C
A B
b NaN 9
c NaN 8
d NaN 4
pd.concat([ df.loc[nfidx],df2])
C
A B
a p 1
q 1
b NaN 9
c NaN 8
d NaN 4