如何按数据框分组以获取重复值作为列的列表

How can I group-by a Dataframe to get repeated values as a list for a column

查询数据库后,我得到了这样的数据框:

   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()),但我需要的是只有一个条目以及所有值。

是否有任何操作可用于执行此更改?

提前致谢。

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

聚合到 pd.Series 的示例,每个单元格包含 list 个值:

data = {"Animal": ["Falcon", "Falcon", "Parrot", "Parrot"], "Speed": [380.0, 370.0, 24.0, 26.0]}
df = pd.DataFrame(data)
serie = df.groupby(["Animal"])["Speed"].agg(lambda x : x.tolist())

serie

它应该输出:

Animal
Falcon    [380.0, 370.0]
Parrot      [24.0, 26.0]
Name: Speed, dtype: object