Python Groupby中的项目计数

Python Groupby中的项目计数,python,pandas,duplicates,pandas-groupby,Python,Pandas,Duplicates,Pandas Groupby,这是一个较大数据帧的示例。我有一个数据帧在一个4的groupby中 gr = df.groupby(np.arange(len(df.index))//4) 我试图将每组4个字母中唯一字母的字母数放入一个名为count的新列中 我已经试过几次了,但还是没能做到最后。任何帮助都将不胜感激。我试过df.duplicate,value\u count,但是 它的形式不会按预期的那样出现。有什么想法吗?也许是一个值,然后将字母映射到正确的位置 我还想避免for循环。我正在寻找一个熊猫数据帧技巧,或者可

这是一个较大数据帧的示例。我有一个数据帧在一个4的groupby中

gr = df.groupby(np.arange(len(df.index))//4)
我试图将每组4个字母中唯一字母的字母数放入一个名为count的新列中

我已经试过几次了,但还是没能做到最后。任何帮助都将不胜感激。我试过df.duplicate,value\u count,但是 它的形式不会按预期的那样出现。有什么想法吗?也许是一个值,然后将字母映射到正确的位置

我还想避免for循环。我正在寻找一个熊猫数据帧技巧,或者可能是一个lambda x函数,它可能会工作

import pandas as pd
import numpy as np

data= [['X',1000],
['X',60],
['X',60],
['Y',40],
['X',60],
['Z',30],
['X',60],
['Z',30],
['X',60],
['Z',30],
['Y',40],
['S',25]]

df = pd.DataFrame(data,columns=['Letter','Cost'])

#groupby4s
gr = df.groupby(np.arange(len(df.index))//4)
我正在寻找的表格:

    Letter  Cost  Count 
0        X    60      3
1        X    60      3
2        X    60      3
3        Y    40      1
4        X    60      2
5        Z    30      2
6        X    60      2
7        Z    30      2
8        X    60      1
9        Z    30      1
10       Y    40      1
11       S    25      1

尝试将
groupby
transform
count
一起使用:

df['Count'] = df.groupby([np.arange(len(df.index))//4, df['Letter']])['Letter']\
                .transform('count')
输出:

   Letter  Cost  Count
0       X  1000      3
1       X    60      3
2       X    60      3
3       Y    40      1
4       X    60      2
5       Z    30      2
6       X    60      2
7       Z    30      2
8       X    60      1
9       Z    30      1
10      Y    40      1
11      S    25      1

尝试一个groupby().agg({[你的cols]:['sum',count']})我正试图做你回答的事情我的语法绝对不正确…………让我确保我理解…………groupby……按4s分组…………然后按列字母分组…………并计算每个字母的计数。非常感谢。