在R语言中为dataframe添加列,逐行统计指定列值的出现次数
为DataFrame添加逐行统计值出现次数的列
问题说明
需要给DataFrame新增一列,逐行统计指定列(比如示例里的Name列)对应值截至当前行的出现次数。
输入示例:
Row Name 1 Tom 2 Dave 3 Tom 4 Brent 5 Brent 6 Tom
期望输出:
Row Name Count 1 Tom 1 2 Dave 1 3 Tom 2 4 Brent 1 5 Brent 2 6 Tom 3
解决方案(Pandas实现)
用groupby搭配cumcount()方法就能快速实现,代码如下:
import pandas as pd # 构造示例DataFrame df = pd.DataFrame({ 'Row': [1, 2, 3, 4, 5, 6], 'Name': ['Tom', 'Dave', 'Tom', 'Brent', 'Brent', 'Tom'] }) # 添加Count列:按Name分组后逐行计数,cumcount从0开始,加1得到从1起始的次数 df['Count'] = df.groupby('Name').cumcount() + 1 # 查看结果 print(df)
逻辑解释
groupby('Name'):把DataFrame按Name列的取值分组,相同Name的行归为一组cumcount():在每个分组内从0开始逐行累加计数- 加1操作:将计数起始值调整为1,匹配需求里的次数统计逻辑
内容的提问来源于stack exchange,提问作者campbeb2
相关产品推荐
相关产品推荐

