我有一个看起来如下的df:
id item color 01 truck red 02 truck red 03 car black 04 truck blue 05 car black 我正在尝试创建一个看起来像这样的df: item color count truck red 2 truck blue 1 car black 2 我努力了 df["count"] = df.groupby("item")["color"].transform('count') 但它并不是我所寻找的. 任何指导表示赞赏
这不是一个新专栏,这是一个新的DataFrame:
In [11]: df.groupby(["item", "color"]).count() Out[11]: id item color car black 2 truck blue 1 red 2 要获得所需的结果,请使用reset_index: In [12]: df.groupby(["item", "color"])["id"].count().reset_index(name="count") Out[12]: item color count 0 car black 2 1 truck blue 1 2 truck red 2 要获得“新列”,您可以使用transform: In [13]: df.groupby(["item", "color"])["id"].transform("count") Out[13]: 0 2 1 2 2 2 3 1 4 2 dtype: int64 |
|