不同的计数指数

时间:2016-12-16 10:41:47

标签: python pandas

我有一个客户数据框,其成员ID为索引。

import numpy as np
import pandas as pd
df=pd.DataFrame({'Mbr ID':['ID0001','ID0002','ID0003','ID0004'],
                 'Receipts':[3,5,12,5],                 
                 'Spending':[130,22,313,46],
                 'Grade':['A','B','A','B']             
                 })
df=df.set_index(['Mbr ID'])

enter image description here

我正在尝试按等级分析数据框,并希望查看每个等级中有多少个唯一ID。但是我在计算Mbr ID方面遇到了问题,因为该列被用作索引。

agg_func={'Customer':pd.Series.nunique,'Receipts':np.sum,'Spending':np.sum}
df.groupby('Grade').agg(agg_func)
  

KeyError:' Mbr ID'

在这种情况下我通常应该做些什么?

1 个答案:

答案 0 :(得分:1)

使用lambda代替

agg_func = {
    'Grade': lambda s: s.index.nunique(),
    'Receipts': 'sum',
    'Spending': 'sum'
}
df.groupby('Grade').agg(agg_func).rename(columns={'Grade': 'Customer'})

enter image description here