我有列名称为.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
答案 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')