gpt4 book ai didi

python - Pandas 使用来自 groupby 的计数创建新列

转载 作者:IT老高 更新时间:2023-10-28 20:57:28 25 4
gpt4 key购买 nike

我有一个如下所示的 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

要获得“新列”,您可以使用转换:

In [13]: df.groupby(["item", "color"])["id"].transform("count")
Out[13]:
0 2
1 2
2 2
3 1
4 2
dtype: int64

我建议阅读 split-apply-combine section of the docs .

关于python - Pandas 使用来自 groupby 的计数创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29836477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com