获取子集pandas DataFrame的长度

时间:2015-07-10 07:58:38

标签: python pandas

是否有一种简单的方法来计算DataFrame中每个子集的条目数?行按一些变量分组(例如可以是月/ id)。谢谢!

修改

例如,如果我有以下数据集

[['one', 2, 3],
 ['one', 3, 4],
 ['two', 4, 6]]

我可以计算第一列确定的每个子集的长度吗?这样新的DataFrame将是

[['one', 2, 3, 2], 
 ['one', 3, 4, 2],
 ['two', 4, 6, 1]]

1 个答案:

答案 0 :(得分:1)

您可以在第一列之前执行groupby,然后计算每个组的长度(使用示例数据,但使用列名称):

In [8]: df = pd.DataFrame([['one', 2, 3],
   ...:  ['one', 3, 4],
   ...:  ['two', 4, 6]], columns=['A', 'B', 'C'])

In [10]: df.groupby('A')['B'].transform(lambda x: len(x))
Out[10]:
0    2
1    2
2    1
Name: B, dtype: int64

将其添加到数据框:

In [17]: df['len'] = df.groupby('A')['B'].transform(lambda x: len(x))

In [18]: df
Out[18]:
     A  B  C  len
0  one  2  3    2
1  one  3  4    2
2  two  4  6    1