#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