将.size()放入新列python pandas

2024-09-29 01:26:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python(以及堆栈溢出)非常陌生希望这有意义!

我有一个包含年份和名字的数据框(不过这是我唯一感兴趣的工作)。 我已经做了df = df.groupby(['year', 'name']).size()来得到每个名字在每年出现的次数。

它返回类似于以下内容的内容:

 year   name
 2001   nameone      2
 2001   nametwo      3
 2002   nameone      1
 2002   nametwo      5

我要做的是将大小数据放入一个名为“count”的新列中。 (最后,我打算把它画在图表上)

任何帮助将不胜感激!


以下是原始代码(为了方便起见,我将其压缩了一点):

^{pr2}$

here is an image of the first 3 rows of the data displayed with .head()

这些数据中唯一感兴趣的列是commonName和year(我从startDate获取)


Tags: ofthe数据namedf堆栈名字year
1条回答
网友
1楼 · 发布于 2024-09-29 01:26:45

IIUC您希望transform添加groupby的结果,其索引与原始df对齐:

df['count'] = df.groupby(['year', 'name']).transform('size')

编辑

根据您的需求,我建议对groupby结果调用reset_index,然后将其合并回主df:

^{pr2}$

相关问题 更多 >