2016-12-16 7 views
1

Ich habe einen Kundendatenrahmen, mit ihren Mitgliedsnummern als Index.Deutliche Zählindizes

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

Ich versuche, den Datenrahmen von Noten zu analysieren und wollen, wie viele eindeutigen IDs zu sehen, dass es in jeder Klasse ist. Aber ich habe Probleme mit dem Zählen von Mbr-IDs, da die Spalte als Index verwendet wird.

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

KeyError: 'Mbr ID'

Was soll ich normalerweise in dieser Situation tun?

+0

vielleicht nicht fallen die Spalte 'Mbr ID' aus dem Datenrahmen? 'df = df.set_index (['Mbr ID'], drop = False)' – MMF

Antwort

1

verwenden eine lambda statt

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

Verwandte Themen