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

Python函数传参问题:Pandas指定列统计唯一值报错

解决Pandas函数中动态列名的索引问题

你遇到的问题很典型——用.访问列的时候,Python会把column当成一个固定的属性名,而不是你传入的字符串变量。要解决这个,只需要把点式索引换成方括号索引就行,因为方括号可以接受字符串变量来动态定位列。

修改后的函数代码

def uniques(column):
    count = data.groupby(column)[column].count()
    print(count)

这里把.column改成[column],就能让Pandas正确识别你传入的列名字符串了:groupby(column)完成分组后,用[column]指定要统计的目标列,再调用count()就可以得到每个唯一值的出现次数。

额外优化建议

  1. 避免全局变量依赖:你的函数直接用了全局的data,最好把DataFrame也作为参数传入,让函数更通用、复用性更强:
def uniques(dataframe, column):
    count = dataframe.groupby(column)[column].count()
    print(count)

调用示例:uniques(your_dataframe, 'c_type')

  1. 更简洁的统计方式:如果你的需求只是获取某列的唯一值总数(不需要每个值的具体出现次数),直接用nunique()会更高效:
def uniques(dataframe, column):
    total_unique = dataframe[column].nunique()
    print(f"列「{column}」的唯一值数量:{total_unique}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:58:05