Dies ist keine Antwort auf die Frage des OP, sondern ein Beispiel, um ShikharDua's Antwort zu veranschaulichen, die ich sehr nützlich fand.
Während dieses Fragment trivial ist, hatte ich in den tatsächlichen Daten Tausende von Zeilen und viele Spalten, und ich wollte in der Lage sein, nach verschiedenen Spalten zu gruppieren und dann die unten aufgeführten Statistiken für mehr als eine Zielspalte durchzuführen. Daher war es eine große Bequemlichkeit, eine zuverlässige Methode zum Aufbau des Datenrahmens Zeile für Zeile zu haben. Danke ShikharDua!
import pandas as pd
BaseData = pd.DataFrame({ 'Kunde' : ['Acme','Mega','Acme','Acme','Mega','Acme'],
'Gebiet' : ['Westen','Osten','Süden','Westen','Osten','Süden'],
'Produkt' : ['Econ','Luxe','Econ','Std','Std','Econ']})
BaseData
columns = ['Kunde','Anzahl eindeutiger Produkte', 'Liste eindeutiger Produkte']
rows_list=[]
for name, group in BaseData.groupby('Kunde'):
RecordtoAdd={} #initialisiere ein leeres dict
RecordtoAdd.update({'Kunde' : name}) #
RecordtoAdd.update({'Anzahl eindeutiger Produkte' : len(pd.unique(group['Produkt']))})
RecordtoAdd.update({'Liste eindeutiger Produkte' : pd.unique(group['Produkt'])})
rows_list.append(RecordtoAdd)
AnalysedData = pd.DataFrame(rows_list)
print('Basisdaten: \n',BaseData,'\n\n Analysierte Daten: \n',AnalysedData)