簡體   English   中英

熊貓,如何計算分組數據框中的出現次數並創建新列?

[英]Pandas, how to count the occurance within grouped dataframe and create new column?

如何使用熊貓獲取組中每個值的計數?

在下表中,我具有“組”和“值”列,並且我想生成一個名為count的新列,其中應包含該值在組中出現的總數。

我的df數據框如下(不包括count列)

------------------------- 
| Group| Value | Count? |
------------------------- 
|   A  |    10 |      3 |
|   A  |    20 |      2 |
|   A  |    10 |      3 |
|   A  |    10 |      3 |
|   A  |    20 |      2 |
|   A  |    30 |      1 |
-------------------------  
|   B  |    20 |      3 |
|   B  |    20 |      3 |
|   B  |    20 |      3 |
|   B  |    10 |      1 |
------------------------- 
|   C  |    20 |      2 |
|   C  |    20 |      2 |
|   C  |    10 |      2 |
|   C  |    10 |      2 |
------------------------- 

我可以使用以下方法獲得計數:

df.groupby(['group','value']).value.count()

但這只是為了查看,我很難將結果作為新列放回數據框。

使用transform

df['count?']=df.groupby(['group','value']).value.transform('count').values

嘗試merge

df

   Group  Value
0      A     10
1      A     20
2      A     10
3      A     10
4      A     20
5      A     30
6      B     20
7      B     20
8      B     20
9      B     10
10     C     20
11     C     20
12     C     10
13     C     10


g = df.groupby(['Group', 'Value']).Group.count()\
                      .to_frame('Count?').reset_index()

df = df.merge(g)
df

   Group  Value  Count?
0      A     10       3
1      A     10       3
2      A     10       3
3      A     20       2
4      A     20       2
5      A     30       1
6      B     20       3
7      B     20       3
8      B     20       3
9      B     10       1
10     C     20       2
11     C     20       2
12     C     10       2
13     C     10       2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM