使用groupby并合并以在熊猫中创建新列

问题描述 投票:0回答:1

所以我有一个看起来像这样的熊猫数据框。

    name  is_something
0   a     0
1   b     1
2   c     0
3   c     1
4   a     1
5   b     0
6   a     1
7   c     0
8   a     1

是否有一种使用groupby并合并以创建新列的方法,该列给出了在整个数据框中is_something值为1的名称出现的次数?更新的数据框如下所示:

    name  is_something no_of_times_is_something_is_1
0   a     0            3
1   b     1            1
2   c     0            1
3   c     1            1
4   a     1            3
5   b     0            1
6   a     1            3
7   c     0            1  
8   a     1            3

我知道您可以遍历数据框来执行此操作,但是我正在寻找一种更有效的方法,因为正在使用的数据集非常大。预先感谢!

python pandas pandas-groupby python-3.7
1个回答
0
投票

[如果0列中只有1is_something值,则仅将sumGroupBy.transform用于由聚合值填充的新列:

GroupBy.transform

如果可能的话,首先将多个值与df['new'] = df.groupby('name')['is_something'].transform('sum') print (df) name is_something new 0 a 0 3 1 b 1 1 2 c 0 1 3 c 1 1 4 a 1 3 5 b 0 1 6 a 1 3 7 c 0 1 8 a 1 3 进行比较,转换为整数,然后将1transform结合使用:

sum
© www.soinside.com 2019 - 2024. All rights reserved.