如何使用熊猫计算列值和分组行的字符串中的字符数?

时间:2020-11-09 13:19:17

标签: python pandas

我有列名称为.csv的文件:

id    name
1    sample1
2    sample3
3    sample four
4    sample.five
5    sample.six.com

我需要按以下方式打印结果(按降序排列):

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

我尝试了以下方法,但这并不是我真正想要的:

In [106]:
df['NAME_Count'] = df['name'].str.len()
df

Out[106]:
       name        NAME_Count
0     sample1        7

1 个答案:

答案 0 :(得分:1)

不需要第一列,您可以将str.len传递到groupby并使用GroupBy.size进行计数:

df1 = df.groupby(df['name'].str.len().rename('chars')).size().reset_index(name='id_count')
print (df1)
   chars  id_count
0      7         2
1     11         2
2     14         1

如果要首先创建新的列解决方案,请稍作更改:

df['NAME_Count'] = df['name'].str.len()
df1 = df.groupby('NAME_Count').size().reset_index(name='count')