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

时间:2016-07-12 05:38:34

标签: python pandas counter

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

Workbooks("newfile").Worksheets("sheet1").Range("B1").EntireColumn.Insert
上面的

返回:

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

然后我尝试将整个事物转换成列表

({"ColumnHeader":1})
上面的

会返回以下错误消息:df2 = df1.values.tolist() Counter(df2)

这似乎是一个相当常见的问题,但我仍然无法将其分解......请帮助推出一个新的...

2 个答案:

答案 0 :(得分:1)

Counter计算可迭代项目。迭代数据帧时,它会遍历列名称。这就是为什么Counter只返回计数为1的列名称的原因。您需要计算数据框列中的项目,因此您需要执行以下操作:

Counter(df2['ColumnHeader'])

另请注意,当您执行df1.values.tolist()时,它会以列表的形式返回您的数据框。但是,Counter只适用于可散列类型。列表不可清洗。

答案 1 :(得分:0)

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

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