熊猫:使用groupby计算重复行数

麦克风

我有一个重复行的数据框

>>> d = pd.DataFrame({'n': ['a', 'a', 'a'], 'v': [1,2,1]})
>>> d
   n  v
0  a  1
1  a  2
2  a  1

我想了解如何.groupby()专门使用方法,以便可以向数据框中添加新列,该列显示与当前行相同的行数。

>>> dd = d.groupby(by=['n','v'], as_index=False)  # Use all columns to find groups of identical rows
>>> for k,v in dd:
...      print(k, "\n", v, "\n")  # Check what we found
... 
('a', 1) 
    n  v
0  a  1
2  a  1 

('a', 2) 
    n  v
1  a  2 

当我尝试dd.count()对生成的DataFrameGroupBy对象执行操作时我得到了IndexError: list index out of range似乎发生这种情况是因为所有列都在分组操作中使用,并且没有其他列可用于计数。同样dd.agg({'n', 'count'})失败ValueError: no results

我可以.apply()用来实现看起来像结果的东西。

>>> dd.apply(lambda x: x.assign(freq=len(x)))
     n  v  freq
0 0  a  1     2
  2  a  1     2
1 1  a  2     1

但是,这有两个问题:1)索引发生了某些事情,因此很难将其映射回原始索引; 2)这似乎不是惯用的熊猫,并且使用它可能会很慢,因此不鼓励使用手册.apply()

使用时还有更多惯用的方法来计算重复行.groupby()吗?

耶斯列尔

一种解决方案是使用GroupBy.size带有计数器的合计输出:

d = d.groupby(by=['n','v']).size().reset_index(name='c')
print (d)
   n  v  c
0  a  1  2
1  a  2  1

您的解决方案后,如果指定的一些列名的工作groupby,因为没有另一个栏目nv输入DataFrame

d = d.groupby(by=['n','v'])['n'].count().reset_index(name='c')

print (d)
   n  v  c
0  a  1  2
1  a  2  1

如果需要带有GroupBy.transform新列的新列-用聚合值填充新列,还需要什么

d['c'] = d.groupby(by=['n','v'])['n'].transform('size')
print (d)
   n  v  c
0  a  1  2
1  a  2  1
2  a  1  2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在熊猫中使用groupby获取行数

来自分类Dev

在熊猫中使用groupby获取行数

来自分类Dev

使用熊猫的groupby只是删除重复的项目

来自分类Dev

使用熊猫的groupby只是删除重复的项目

来自分类Dev

计算熊猫的平均行数

来自分类Dev

如何计算行数并避免重复?

来自分类Dev

使用groupby操作计算熊猫百分比

来自分类Dev

如何使用熊猫计算groupby函数的累积时间?

来自分类Dev

熊猫:使用groupby来计算日期之间的差异

来自分类Dev

使用groupby计算熊猫数据框中的总和

来自分类Dev

在熊猫数据框中使用.groupby计算唯一值

来自分类Dev

如何使用熊猫计算groupby函数的累积时间?

来自分类Dev

熊猫:使用groupby来计算日期之间的差异

来自分类Dev

Python熊猫:groupby输出重复

来自分类Dev

熊猫groupby:删除重复项

来自分类Dev

熊猫groupby并计算1 /计数

来自分类Dev

计算熊猫中的重复块

来自分类Dev

计算熊猫中两列的行数

来自分类Dev

计算熊猫数据中每组的行数

来自分类Dev

计算与熊猫框架中的条件匹配的行数(如果可能,请使用数据的排序方式)

来自分类Dev

熊猫:在groupby'date'中删除重复项

来自分类Dev

熊猫groupby将重复的行分为列

来自分类Dev

熊猫:groupby两列不重复

来自分类Dev

熊猫:在groupby'date'中删除重复项

来自分类Dev

计算使用Laravel插入的行数?

来自分类Dev

熊猫groupby,计算每个值的出现次数

来自分类Dev

熊猫如何基于groupby计算结果

来自分类Dev

计算熊猫中连续的重复值

来自分类Dev

计算熊猫中校验和重复的文件