我在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)
这似乎是一个相当常见的问题,但我仍然无法将其分解......请帮助推出一个新的...
答案 0 :(得分:1)
Counter
计算可迭代项目。迭代数据帧时,它会遍历列名称。这就是为什么Counter
只返回计数为1的列名称的原因。您需要计算数据框列中的项目,因此您需要执行以下操作:
Counter(df2['ColumnHeader'])
另请注意,当您执行df1.values.tolist()
时,它会以列表的形式返回您的数据框。但是,Counter
只适用于可散列类型。列表不可清洗。
答案 1 :(得分:0)
在不使用集合的情况下返回字典的另一种方法是
dict(df1["column_header"].value_counts())