Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用多索引dataframe对groupby或pivot_表之后的特定级别的数据求和_Python_Pandas_Pivot Table - Fatal编程技术网

Python 如何使用多索引dataframe对groupby或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

这是我的问题的示意图

在为我的数据帧运行“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 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”进行聚合?这背后的逻辑是什么?