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

如何在Pandas中按bins对元组首元素分组并计算对应值?

按自定义Bins分组统计元组列表的均值解决方案

以下是完整的实现步骤,基于你已经完成explode拆分的基础上:

1. 将拆分后的元组拆分为独立列

explode后每行是单个元组,需要把元组的两个元素拆成单独列,方便后续处理:

# 假设你已经执行过 df_exploded = df.explode('lists')
df_exploded[['value1', 'value2']] = pd.DataFrame(df_exploded['lists'].tolist(), index=df_exploded.index)

2. 过滤首元素为0的元组

直接筛选掉value1等于0的行:

df_filtered = df_exploded[df_exploded['value1'] != 0.0]

3. 按自定义Bins分组并计算均值

使用pd.cut将value1映射到你定义的bins区间,然后分组计算value2的均值:

# 用bins的右边界作为分组标签,匹配你期望的输出格式
df_filtered['bin_label'] = pd.cut(
    df_filtered['value1'],
    bins=bins,
    labels=bins[1:],  # 每个区间的右边界作为显示标签
    include_lowest=True  # 确保最小的非0值能被分到第一个bin
)

# 分组计算均值
result = df_filtered.groupby('bin_label')['value2'].mean()

4. 查看结果

此时result就是你需要的格式,直接打印即可:

print(result)

关键说明

  • pd.cut的labels=bins[1:]确保输出的索引是每个bin的右边界,和你给出的示例一致
  • 没有数据的bin会自动显示NaN,无需额外处理
  • 如果需要其他统计量(比如求和、计数),只需把.mean()换成对应的方法(.sum()、.count()等)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:37:35