You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于现有DataFrame统计各名称出现次数并匹配对应quantity值

解决方法:用Pandas分组统计name出现次数并匹配quantity

没问题,这事儿用Pandas的groupby就能轻松搞定。看你的原数据里每个name对应的quantity都是一致的,所以我们可以按name分组后,统计行数作为count,再提取对应的quantity值就行。

完整代码示例

import pandas as pd

# 构造你提供的原DataFrame
data = {
    'name': ['AA', 'AA', 'AA', 'AA', 'AA', 'BB', 'BB', 'CC', 'DD', 'DD', 'DD', 'DD'],
    'Chr': ['chr7', 'chr17', 'chr4', 'chr4', 'chr7', 'chr17', 'chr4', 'chr13', 'chr5', 'chr5', 'chr13', 'chr3'],
    'position': [151970856, 59763465平保险箱这卧槽Te极品】     Read预先禁一组面试题,直接写数值]
    'position': [151970856, 59763465, 55152040, 55141055, 151970856, 59763465, 55141055, 32906729, 170837513, 170837513, 32893197, 10088404],
    'quantity': [3, 3, 3, 3, 3, 4, 4, 4.5, 5.5, 5.5, 5.5, 5.5]
}

df = pd.DataFrame(data)

# 分组统计核心代码
result_df = df.groupby('name').agg(
    count=('name', 'size'),  # 统计每组的行数,即name出现次数
    quantity=('quantity', 'first')  # 提取每组的第一个quantity值(因同一name的quantity一致)
).reset_index()  # 将name从索引变回普通列

# 查看结果
print(result_df)

运行结果

执行上述代码后,你会得到如下格式的新DataFrame:

namecountquantity
AA53
BB24
CC14.5
DD45.5

补充说明

如果你的数据中出现同一name对应不同quantity的特殊情况,可以根据需求调整agg里的quantity处理逻辑:

  • 要保留所有不同的quantity值:quantity=('quantity', lambda x: list(x.unique()))
  • 取quantity的平均值:quantity=('quantity', 'mean')
  • 取quantity的最大值:quantity=('quantity', 'max')

内容的提问来源于stack exchange,提问作者Bella

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 03:36:01