特定行存在多少次?

时间:2015-06-06 13:14:26

标签: python pandas

我刚开始看Pandas,并试图弄清楚如何计算特定行的次数。我需要添加一个新列,显示重复行的显示次数,并仅显示唯一的行。

所以这个:

File "/Users/Apple/Downloads/emsdk_portable/emscripten/1.30.0/emcc", line 52, in <module>
    from tools import shared, jsrun, system_libs
ImportError: No module named tools

会变成这样:

team    runs  
team 1   5  
team 1   5  
team 1   5  
team 2   5  

1 个答案:

答案 0 :(得分:3)

一旦弄清楚相同的行意味着什么,这很容易。我只是使用stringifed值的哈希值。如果你有一个替代定义,那么也可以。

In [37]: df = DataFrame({'A' : [1,1,1,2,3,3], 'B' : [2,2,2,2,3,3]})

In [38]: df
Out[38]: 
   A  B
0  1  2
1  1  2
2  1  2
3  2  2
4  3  3
5  3  3

计算每行的哈希值。相同的&#39;行&#39;产生相同的哈希值

In [39]: hashed = df.apply(lambda x: hash(str(x.values)), axis=1)

In [40]: hashed
Out[40]: 
0    4112993419872972622
1    4112993419872972622
2    4112993419872972622
3    7113020419917972579
4    6113011419891972603
5    6113011419891972603
dtype: int64

将值计数映射回原始索引。如果您想要第一个唯一的行(而不是最后一行),可以将take_last=False传递给.drop_duplicates()

In [41]: hashed.drop_duplicates().map(hashed.value_counts())
Out[41]: 
0    3
3    1
4    2
dtype: int64