Каков наилучший способ получить случайный образец элементов groupby
? Насколько я понимаю, groupby
- это просто перебор по группам.Python Pandas Выбор случайной выборки групп из Groupby
Стандартный способ, которым я хотел бы сделать это для итератора, если я хочу, чтобы выбрать N = 200
элементов:
rand= random.sample(data, N)
Если вы попытаетесь выше, где данные является «сгруппированными» элементами результирующего списка являются кортежами по какой-то причине.
Я нашел приведенный ниже пример для случайного выбора элементов одного ключа groupby
, однако это не работает с несколькими ключами groupby
. С, How to access pandas groupby dataframe by key
создать GroupBy объект
grouped = df.groupby('some_key')
пикап N dataframes и захватить их indicies
sampled_df_i = random.sample(grouped.indicies,N)
захватить группы
df_list = map(lambda df_i: grouped.get_group(df_i),sampled_df_i)
необязательно - превратить все это обратно в единый каркас данных ЭСТ
sampled_df = pd.concat(df_list, axis=0, join='outer')
Очень тщательно. Спасибо за включение примеров с несколькими индексами. – sfortney