如何统计pandas DataFrame指定列中各字符串长度对应的出现次数
解决方案
你使用的nunique()仅用于统计唯一值的总数量,要得到每个长度对应的出现次数,使用pandas原生的value_counts()方法即可实现,全程为向量化操作,适配大体量DataFrame的性能需求:
核心代码
# 计算长度并统计频次 res = df["aic"].str.len().value_counts().reset_index() # 重命名列匹配需求格式 res.columns = ["length", "count"] # 按长度升序排序(可选,默认是按计数降序排列) res = res.sort_values("length", ignore_index=True)
代码说明
df["aic"].str.len():逐行计算aic列字符串的长度,返回值为整数型Series.value_counts():统计上述Series中每个长度值的出现次数.reset_index():将默认作为索引的长度值转为普通列,得到两列结构的DataFrame- 最后排序步骤可根据你的展示需求选择是否保留
样例测试效果
用你提供的示例数据运行上述代码,输出结果完全匹配预期:
| length | count |
|---|---|
| 4 | 1 |
| 8 | 2 |
| 9 | 1 |
内容的提问来源于stack exchange,提问作者Robert Alexander
相关产品推荐
相关产品推荐

