使用Excel列中每个唯一项目的计数创建字典



我在 excel 中有一列带有标题。该列包含 25-30 个唯一值,总长度为 28000 行。我希望我的输出是一个字典,键是列中的每个唯一项目,值是它的计数

df1 = pandas.read_excel(file,sheet)
Counter(df1) 

以上回报:

({"ColumnHeader":1})

然后我尝试将整个内容转换为列表

df2 = df1.values.tolist()
Counter(df2) 

以上返回此错误消息:TypeError: unhashable type: 'list'

这似乎是一个相当常见的问题,但我仍然无法分解它..请在这里帮助新手...

Counter计算可迭代对象中的项目。循环访问数据帧时,它会循环访问列名称。这就是为什么Counter只是返回计数为 1 的列的名称。您需要对数据帧列中的项目进行计数,因此需要执行以下操作:

Counter(df2['ColumnHeader'])

另请注意,当您执行此操作df1.values.tolist()时,它会以列表列表的形式返回数据帧。但是,Counter只能使用可哈希类型。列表不可哈希处理。

不使用集合返回字典的另一种方法是

dict(df1["column_header"].value_counts())

相关内容

  • 没有找到相关文章

最新更新