理解Pandas中的numeric_only布尔参数

-1 投票
1 回答
30 浏览
提问于 2025-04-12 03:21

我刚接触Pandas,想更好地理解一下numeric_only这个参数的用法。

在下面的截图中,你可以看到我的目标是根据作者的禁令状态来获取视频分享数量的中位数。为什么在计算中位数的时候,我需要在函数里指定“numeric_only = True”?如果我去掉这个参数,结果为什么会拉出数据框中的多个字段呢?

点击这里查看图片

点击这里查看图片

我本以为只用median(['video_share_count'])就足够了,这样就能指定我只对这个特定的数字字段感兴趣。

1 个回答

0

为什么当我去掉numeric_only参数时,结果会提取数据框中的多个字段?”

groupby.median 这个函数只接受一个参数:numeric_only

通过运行:

df.groupby('author_ban_status').median(['video_share_count'])

你实际上还是在使用numeric_only参数,这相当于:

df.groupby('author_ban_status').median(numeric_only=['video_share_count'])

而因为bool(['video_share_count'])的结果是True,所以你实际上是在运行:

df.groupby('author_ban_status').median(numeric_only=True)

这样就没有过滤任何列。

你可能只是想要:

df.groupby('author_ban_status')[['video_share_count']].median(numeric_only=True)

撰写回答