python新手一枚,请问各路大神pandas库可以进行字符串数据频度统计的问题吗?
想利用pandas库来进行excel文件某列的数据统计,比如输出指定列数据频度次数前五的行这样。
groupby(),sort_values()这类函数查看文档之后好像都只能对int这类数值进行排序,
或者python中有什么更好的方法进行字符串频度排序吗?
万分感谢!!
我举个例子:对字符串列表进行数据频度统计
import numpy as np
li = ['cc','aa','cc','bb','aa','cc','cc','aa','cc','##','##','##']
uni = np.unique(li) # 唯一值
dic = dict((a, li.count(a)) for a in uni)
print(dic.items())
结果:
dict_items([('##', 3), ('aa', 3), ('bb', 1), ('cc', 5)])
dic = sorted(dic.items(),key= lambda x:x[1], reverse=True) # True--降序
print(dic)
print(list(x[0] for x in dic[:2]))
结果:
[('cc', 5), ('##', 3), ('aa', 3), ('bb', 1)]
['cc', '##']
字符串频数不是数值吗?
你要做的是先读取excel,然后利用字典统计频数,在使用sort对频数进行统计