Чтобы выбрать случайную запись после выполнения операции группировки в pandas, вы можете использовать различные методы. Вот несколько подходов:
-
Метод выборки. Вы можете использовать метод
sample
для случайного выбора строк из каждой группы после операцииgroupby
. Например:import pandas as pd # Create a DataFrame df = pd.DataFrame({'Group': ['A', 'A', 'B', 'B', 'B'], 'Value': [1, 2, 3, 4, 5]}) # Randomly select one entry from each group random_entries = df.groupby('Group').apply(lambda x: x.sample(n=1)) print(random_entries)
-
Группировка и преобразование. Другой метод — использовать функцию
transform
в сочетании сgroupby
. Это позволяет вам присвоить случайное значение каждой строке в каждой группе. Например:import pandas as pd import numpy as np # Create a DataFrame df = pd.DataFrame({'Group': ['A', 'A', 'B', 'B', 'B'], 'Value': [1, 2, 3, 4, 5]}) # Assign a random value to each row within each group df['RandomEntry'] = df.groupby('Group')['Value'].transform(lambda x: np.random.choice(x)) print(df)
-
Подход, подобный SQL. Если вы предпочитаете подход, подобный SQL, вы можете использовать метод
merge
, чтобы объединить исходный DataFrame с подмножеством, содержащим случайные записи из каждой группы. Вот пример:import pandas as pd # Create a DataFrame df = pd.DataFrame({'Group': ['A', 'A', 'B', 'B', 'B'], 'Value': [1, 2, 3, 4, 5]}) # Join the original DataFrame with a subset containing random entries from each group random_entries = df.merge(df.groupby('Group').apply(lambda x: x.sample(n=1)), on=['Group', 'Value']) print(random_entries)