Ich habe einen Datenrahmen, die ich Gruppierung bin wie folgt und bestimmte Operationen auf bestimmte Spalten anwenden:Sampling eine gruppierte Datenrahmen durch Spalte
df = df.groupby(['A', 'B', 'C']).agg({'ID': 'count', 'AMT': 'sum'})
Für jede groupby Kombination (~ 15) Ich möchte die Zeilen zufällig probieren gehören, zu jeder Kombination und geben Sie eine Proben-ID zurück und melden Sie sie in einer dritten Ausgabespalte. ODER ich möchte wirklich nur eine der IDs aus den Zeilen in dieser Kombination in der Tabelle erscheinen, es ist mir egal, ob es "zufällig" ist oder nicht.
Ich habe das versucht, folgende:
df = df.groupby(['A', 'B', 'C']).agg({'ID': 'count', 'AMT': 'sum', 'ID': 'sample'})
und erhielt den Fehler:
AttributeError: Cannot access callable attribute 'sample' of 'SeriesGroupBy' objects, try using the 'apply' method
So dann habe ich versucht:
func = lambda x: x.sample
df = df.groupby(['A', 'B', 'C']).agg({'ID': 'count', 'AMT': 'sum', 'ID': apply(func)})
die Arbeit den Ball hielt so habe ich versucht,
df = df.groupby(['A', 'B', 'C']).agg({'ID': 'count', 'AMT': 'sum', 'ID': lambda x: x.sample})
was auch nicht funktioniert hat. Ich habe die folgenden Links für verwandte Fragen überprüft, aber sie schienen mir auch nicht zu helfen.
Select multiple groups from pandas groupby object
http://pandas.pydata.org/pandas-docs/stable/groupby.html
Get specific element from Groups after applying groupby - PANDAS
How to access pandas groupby dataframe by key
https://chrisalbon.com/python/pandas_apply_operations_to_dataframes.html
Irgendwelche Gedanken darüber, wie zu handhaben?