Как я могу сгруппировать по фрейму данных, чтобы получить повторяющиеся значения в виде списка для столбца

#python #pandas #dataframe #pandas-groupby

Вопрос:

После запроса базы данных я получаю фрейм данных, подобный этому:

 Animal Max Speed 0 Falcon 380.0 1 Falcon 370.0 2 Parrot 24.0 3 Parrot 26.0  

Как видно, столбец Animal имеет повторяющиеся значения, и я хочу сгруппировать этот столбец и получить результат (не имеет значения, соответствует ли результат типу данных diff, например dict).:

 Animal Max Speed 0 Falcon 380.0, 370.0 1 Parrot 24.0, 26.0  

Во всех примерах, которые я видел до сих пор df.groupby(['column_name']) , есть другая операция (например sum(), count() ), но мне нужно иметь только одну запись вместе со всеми значениями.

Есть ли какая — либо операция, которая может быть использована для выполнения этого изменения?

Заранее спасибо.

Ответ №1:

 d = {"Animal": ["Falcon", "Falcon", "Parrot", "Parrot"], "Speed": [123, 235.2, 323, 223.3]} df = pd.DataFrame(d)  df["Speed"] = df.Speed.apply(lambda x: str(x)) df['CT_Speed'] = df.groupby(['Animal'])['Speed'].transform(lambda x : ', '.join(x)) df.drop("Speed", axis=1, inplace = True) df = df.drop_duplicates()  df