基于ID条件分组创建统计总行数的新变量
需求说明
现有数据集如下:
| ID |
|---|
| 1 |
| 1 |
| 1 |
| 1 |
| 2 |
| 2 |
| 2 |
需要新增一个New列,使每个ID对应的所有行中,New的值为该ID的总行数,最终结果如下:
| ID | New |
|---|---|
| 1 | 4 |
| 1 | 4 |
| 1 | 4 |
| 1 | 4 |
| 2 | 3 |
| 2 | 3 |
| 2 | 3 |
常用实现方法
1. Excel操作
假设ID数据在A列,在B2单元格输入公式:=COUNTIF($A:$A,A2)
下拉填充公式即可完成。
2. Python pandas实现
import pandas as pd # 构造数据集 df = pd.DataFrame({'ID': [1,1,1,1,2,2,2]}) # 按ID分组后,用transform保留原行数并计算组内数量 df['New'] = df.groupby('ID')['ID'].transform('count') print(df)
3. R语言实现
# 构造数据集 df <- data.frame(ID = c(1,1,1,1,2,2,2)) # 用ave函数按ID分组计算长度 df$New <- ave(df$ID, df$ID, FUN = length) print(df)
内容的提问来源于stack exchange,提问作者wilbertosilva
相关产品推荐
相关产品推荐

