小编Tia*_*tas的帖子

计数是否在多个索引数据框中

我有一个多索引数据框,我想知道为 3 个标准中的每一个支付了特定债务门槛的客户百分比:城市、卡和抵押品。

这是一个工作脚本:

import pandas as pd

d = {'City': ['Tokyo','Tokyo','Lisbon','Tokyo','Tokyo','Lisbon','Lisbon','Lisbon','Tokyo','Lisbon','Tokyo','Tokyo','Tokyo','Lisbon','Tokyo','Tokyo','Lisbon','Lisbon','Lisbon','Tokyo','Lisbon','Tokyo'], 
     'Card': ['Visa','Visa','Master Card','Master Card','Visa','Master Card','Visa','Visa','Master Card','Visa','Master Card','Visa','Visa','Master Card','Master Card','Visa','Master Card','Visa','Visa','Master Card','Visa','Master Card'],
     'Colateral':['Yes','No','Yes','No','No','No','No','Yes','Yes','No','Yes','Yes','No','Yes','No','No','No','Yes','Yes','No','No','No'],
     'Client Number':[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22],
     '% Debt Paid':[0.8,0.1,0.5,0.30,0,0.2,0.4,1,0.60,1,0.5,0.2,0,0.3,0,0,0.2,0,0.1,0.70,0.5,0.1]}

df = pd.DataFrame(data=d)

df1 = (df.set_index(['City','Card','Colateral'])
         .drop(['Client Number'],axis=1)
        .sum(level=[0,1,2]))

df2 = df1.reindex(pd.MultiIndex.from_product(df1.index.levels), fill_value=0)
Run Code Online (Sandbox Code Playgroud)

这是结果:

在此处输入图片说明

为了克服这个问题,我尝试了以下方法但没有成功:


df1 = (df.set_index(['City','Card','Colateral'])
        .drop(['Client Number'],axis=1)
       [df.Total = 0].count(level=[0,1,2])/[df.Total].count()
       [df.Total > 0 & df.Total <=0.25 ].count(level=[0,1,2])/[df.Total].count()
       [df.Total > 0.25 & df.Total <=0.5 ].count(level=[0,1,2])/[df.Total])
       [df.Total > 0.5 & df.Total <=0.75 ].count(level=[0,1,2])/[df.Total]
       [df.Total > 0.75 & df.Total <1 …
Run Code Online (Sandbox Code Playgroud)

python multi-index dataframe python-3.x pandas

7
推荐指数
2
解决办法
208
查看次数

标签 统计

dataframe ×1

multi-index ×1

pandas ×1

python ×1

python-3.x ×1