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

如何用Pandas统计字符串列字符数并按字符数分组统计行数

解决方法:统计名称长度并按行数降序排列

我来帮你搞定这个需求!你之前已经算出了每个名称的字符长度,但还缺少按长度分组统计行数和按行数降序排序这两个关键步骤,下面是完整的实现代码和详细解释:

完整代码

import pandas as pd

# 读取你的CSV文件(替换成实际文件路径)
df = pd.read_csv('your_file.csv')

# 链式操作完成所有需求:计算长度→分组统计→排序→重命名列
result = (df
          # 新增列:计算每个name的字符长度
          .assign(str_len_count=lambda x: x['name'].str.len())
          # 按长度分组,统计每组的行数(对应id的数量)
          .groupby('str_len_count')
          .size()
          # 将分组结果转为DataFrame,并给统计列命名为id_count
          .reset_index(name='id_count')
          # 按行数(id_count)降序排列
          .sort_values(by='id_count', ascending=False)
          # 重命名列名到你需要的格式
          .rename(columns={
              'str_len_count': 'chars(str_len_count)',
              'id_count': 'rows(id_count)'
          }))

# 输出结果
print(result)

分步解释

  1. 读取数据:用pd.read_csv加载你的CSV文件,替换成实际文件路径即可。
  2. 计算字符长度:用assign新增str_len_count列,存储每个name的字符长度(和你之前的df['NAME_Count'] = df['name'].str.len()效果一致,链式写法更简洁)。
  3. 分组统计行数:groupby('str_len_count').size()会按字符长度分组,统计每组的行数(也就是对应id的数量)。如果你的id列没有空值,用groupby('str_len_count')['id'].count()也能得到同样结果。
  4. 转为DataFrame并命名列:reset_index把分组后的索引转为列,同时给统计的行数列命名为id_count。
  5. 按行数降序排序:sort_values(by='id_count', ascending=False)实现按行数从多到少排列。
  6. 重命名列名:用rename把列名调整成你需要的chars(str_len_count)和rows(id_count)格式。

验证结果

用你提供的测试数据运行后,会得到完全符合需求的输出:

chars(str_len_count)  rows(id_count)
0                     7               2
1                    11               2
2                    14               1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 19:52:27