熊猫多索引按与X不同的索引值分组

德勒玛

我有以下数据框。

                             balance
id            currency              
3             1WO       1.732174
              ADH       7.734906
              ALX       3.854667
              AMLT      4.308590
              ANCT      1.259457
...                              ...
646902        BTC       2.000000
              ETH       1.495225
676329        BCH       0.000000
              BTC       0.000000
              ETH       3.022524

我想id不按3&分组,currency然后将余额相加。另外,将收集多个ID的新的分组ID称为29。我可以执行以下操作,但是它错过了不收集索引数据3并将其重命名的附加条件

groupby(['currency','app_vendor_id']).sum()

任何贡献将不胜感激。

编辑:

预期输出:

                             balance
id            currency              
3             1WO       1.732174
              ADH       7.734906
              ALX       3.854667
              AMLT      4.308590
              ANCT      1.259457
...                              ...
29            BTC       2.000000
              ETH       4.517869
耶斯列尔

rename不带3第一级的所有值首先使用

ids = df.index.levels[0]
d = dict.fromkeys(ids[ids != 3], 29)
df1 = df.rename(d, level=0)
print (df1)
              balance
id currency          
3  1WO       1.732174
   ADH       7.734906
   ALX       3.854667
   AMLT      4.308590
   ANCT      1.259457
29 BTC       2.000000
   ETH       1.495225
   BCH       0.000000
   BTC       0.000000
   ETH       3.022524

然后使用sum

print (df1.sum(level=0))
      balance
id           
3   18.889794
29   6.517749

print (df1.sum(level=1))
           balance
currency          
1WO       1.732174
ADH       7.734906
ALX       3.854667
AMLT      4.308590
ANCT      1.259457
BTC       2.000000
ETH       4.517749
BCH       0.000000

print (df1.sum(level=[0,1]))
              balance
id currency          
3  1WO       1.732174
   ADH       7.734906
   ALX       3.854667
   AMLT      4.308590
   ANCT      1.259457
29 BTC       2.000000
   ETH       4.517749
   BCH       0.000000

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章