Python 如何使用多索引dataframe对groupby或pivot_表之后的特定级别的数据求和
这是我的问题的示意图 在为我的数据帧运行“groupby”或“pivot_table”后,我得到了一个数据帧②带有“A”、“B”索引。然而,我不需要更多的数据。因此,我想在特定的索引级别聚合数据 然后我可以得到最后一个数据帧③。b应总结e\f索引数据,1+1=2 此函数与Excel中的折叠行为类似。我检查了文档(pivot_表),但“边距”此参数不适合此要求 谢谢Python 如何使用多索引dataframe对groupby或pivot_表之后的特定级别的数据求和,python,pandas,pivot-table,Python,Pandas,Pivot Table,这是我的问题的示意图 在为我的数据帧运行“groupby”或“pivot_table”后,我得到了一个数据帧②带有“A”、“B”索引。然而,我不需要更多的数据。因此,我想在特定的索引级别聚合数据 然后我可以得到最后一个数据帧③。b应总结e\f索引数据,1+1=2 此函数与Excel中的折叠行为类似。我检查了文档(pivot_表),但“边距”此参数不适合此要求 谢谢 我不知道这样的函数,但这里有一个解决方法: df C A B a p 1 q 1 d r 2 s 2 b
我不知道这样的函数,但这里有一个解决方法:
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
仅当值为“e”或“f”时,您是否期望通过“B”进行聚合?这背后的逻辑是什么?