使用
CategoricalIndex有
CategoricalIndex.pres:
df['config_version_count'] = (df.groupby('config_name')['config_version'] .transform(lambda x: pd.CategoricalIndex(x).pres))print (df) ID config_name config_version config_version_count0 aaA 0 01 abA 7 12 adA 7 13 adA 27 24 bbB 0 05 ccC 0 06 cdC 8 1您的解决方案应该可以正常工作:
df['config_version_count'] = (df.drop_duplicates(['config_name','config_version']) .groupby('config_name') .cumcount())df['config_version_count'] = df['config_version_count'].ffill().astype(int)


