首页 > 解决方案 > 如何用另一列中的变量出现的次数填充一列?

问题描述

我有这个由两个变量 A 和 B 组成的数据集。变量 A 由一个数字列表组成。并非所有数字都不同。我想在每一行中用数字 N 填充变量 B,其中 N 是到目前为止 A 出现的次数。

这是我拥有的数据框:

A      B
2101    
2101    
2102    
2102    
2102    
2103    
2104    
2104    
2104    
2104    

这是我希望输出的方式:

A       B
2101    1
2101    2
2102    1
2102    2
2102    3
2103    1
2104    1
2104    2
2104    3
2104    4

标签: pythonpython-3.xpandas

解决方案


你可以用这个简单地做到这一点

df['B']=df.groupby('A').cumcount()+1  # +1 as the index starts with 0 

参考:pandas.core.groupby.GroupBy.cumcount


推荐阅读