使用熊猫变换计数不同

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

假设我具有以下数据框:

df2 = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
                          'foo', 'bar', 'foo', 'foo'],
                   'B' : ['one', 'one', 'two', 'three',
                         'two', 'two', 'one', 'three'],
                   'C' : np.random.randn(8), 'D' : np.random.randn(8)})
df2.head()

外观如下:

     A      B         C         D
0  foo    one  0.613774  0.783539
1  bar    one -0.937659 -0.913213
2  foo    two -1.568537  1.569597
3  bar  three -0.353449  1.108789
4  foo    two -1.769544  0.530466

我知道,如果我想创建另一个列,即列A中每个值的记录数,则可以执行以下操作:

df2['counts'] = df2.groupby('A')['B'].transform(np.size)

但是,我只想计算按A分组的B的唯一元素?我知道如何将数据帧减少到两列(一列用于“ foo”,一列用于“ bar”),但是如何使用变换来做到这一点?

python pandas numpy
1个回答
0
投票

使用GroupBy.transform.nunique

df2['counts'] = df2.groupby('A')['B'].transform('nunique')
© www.soinside.com 2019 - 2024. All rights reserved.