PySpark:为DataFrame添加列以展示字段值的出现次数
Pandas 实现新增列统计值出现次数
可以用两种简单方法实现需求,且都不会改变原DataFrame的结构:
方法一:groupby + transform
transform方法会将分组统计的结果广播到原DataFrame的每一行,完美匹配需求:
import pandas as pd # 构造示例数据 df = pd.DataFrame({'A': ['a', 'a', 'b', 'c', 'c', 'a']}) # 新增统计列 df['A_counts'] = df.groupby('A')['A'].transform('count')
方法二:value_counts + map
先生成每个值的出现次数映射字典,再通过map匹配到每一行:
import pandas as pd df = pd.DataFrame({'A': ['a', 'a', 'b', 'c', 'c', 'a']}) # 生成值-次数映射 count_dict = df['A'].value_counts().to_dict() # 新增列 df['A_counts'] = df['A'].map(count_dict)
两种方法执行后,都会得到你想要的结果:
| A | A_counts |
|---|---|
| a | 3 |
| a | 3 |
| b | 1 |
| c | 2 |
| c | 2 |
| a | 3 |
内容的提问来源于stack exchange,提问作者pmolok
相关产品推荐
相关产品推荐

