pandas统计git日志中各作者无重复commit提交次数的实现方法
解决方案
你可以通过以下两种方式统计去重后的作者提交次数:
- 先去重再统计
如果仅需要统计提交次数,可先按commit哈希列(你csv中列名为sha)去重,再统计作者频次:
# 按sha列去重后统计作者提交次数,取前10 commit_data.drop_duplicates(subset='sha')['Author'].value_counts().head(10)
- 分组统计唯一值(推荐)
如果后续还需要用到文件维度的增删行数数据,不需要修改原数据集,直接通过分组统计唯一commit哈希的数量即可:
# 按作者分组,统计每个作者对应的唯一sha数量,降序排列取前10 commit_data.groupby('Author')['sha'].nunique().sort_values(ascending=False).head(10)
如果需要同时统计提交次数、总新增/删除行数等多维度指标,可以一次性完成聚合:
# 请将add_line、delete_line替换为你csv中对应新增、删除行数的列名 author_stats = commit_data.groupby('Author').agg( 提交次数=('sha', 'nunique'), 新增总行数=('add_line', 'sum'), 删除总行数=('delete_line', 'sum') ).sort_values('提交次数', ascending=False).reset_index()
内容的提问来源于stack exchange,提问作者milan
相关产品推荐
相关产品推荐

