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

理解Pandas中numeric_only参数:分组求中位数的疑问

关于Pandas中median()的numeric_only参数问题解答
  • 先纠正你一个误区:median(['video_share_count'])这种写法是无效的。因为median()函数本身不接受列名列表作为参数,它的参数是axis、skipna、numeric_only这类控制计算逻辑的选项,你传的列名列表会被当成axis参数的值,根本起不到指定计算列的作用。

  • 为什么移除numeric_only=True会返回多字段?
    Pandas的median()默认会遍历数据框里的所有列,尝试计算每一列的中位数。如果你的数据框里除了video_share_count,还有其他数值型列(比如播放量、点赞数),这些列都会被计算中位数,最终返回包含所有这些列结果的数据框。而如果有非数值型列,Pandas在旧版本里可能会跳过它们,但新版本可能直接报错——numeric_only=True的作用就是明确告诉Pandas:只对数值型列执行中位数计算。

  • 实现需求的正确写法有两种:

    1. 先筛选目标列,再分组计算中位数(这种写法不需要numeric_only,因为已经只保留了数值列):
      df.groupby('author_banned_status')['video_share_count'].median()
      
    2. 对分组后的整个数据框调用median(),同时指定numeric_only=True;如果你的数据框里只有video_share_count是数值列,结果就是你要的;如果还有其他数值列,建议用第一种写法精准筛选:
      df.groupby('author_banned_status').median(numeric_only=True)
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:07:05