Skip to main content
 首页 » 编程设计

python之计算 pandas 列中值的频率,其中另一列中的值相似

2025年05月04日21daizhj

给定一个 pandas dataframe,如下所示 column_a 和 column_b。我如何构建 2 个额外的列,一个计算所有列的 column_a 中每个值的频率,另一个计算 column_a 中的值的唯一值数是一样的:

column_a | column_b | col_a_count | count_unique_b_where_a 
  0           1           4         3 
  0           1           4         3 
  0           2           4         3 
  0           3           4         3 
  2           0           3         1 
  2           0           3         1 
  2           0           3         1  
  5           3           1         1 
  9           5           6         5  
  9           5           6         5 
  9           3           6         5 
  9           4           6         5 
  9           2           6         5 
  9           1           6         5 

请您参考如下方法:

使用 groupby 和 agg:

s = (df.groupby('column_a').agg( 
        {'column_a': 'count', 'column_b': 'nunique'}).reindex(df.column_a)) 

          column_a  column_b    
column_a                        
0                4         3    
0                4         3    
0                4         3    
0                4         3    
2                3         1    
2                3         1    
2                3         1    
5                1         1    
9                6         5    
9                6         5    
9                6         5    
9                6         5    
9                6         5    
9                6         5