Python编程方法—excel中的数据操作
我正在使用python包xlrd和xlwt使用python从excel电子表格中进行读写。但是我不知道如何编写代码来解决我的问题 所以我的数据由一列州缩写和一列数字组成,从1到7。每个州大约有200-300个条目,我想计算出每个州有多少个一、二、三等条目。我正在努力想我该用什么方法来解决这个问题 通常我会发布我已经有的代码,但我甚至不知道从哪里开始Python编程方法—excel中的数据操作,python,excel,xlrd,xlwt,Python,Excel,Xlrd,Xlwt,我正在使用python包xlrd和xlwt使用python从excel电子表格中进行读写。但是我不知道如何编写代码来解决我的问题 所以我的数据由一列州缩写和一列数字组成,从1到7。每个州大约有200-300个条目,我想计算出每个州有多少个一、二、三等条目。我正在努力想我该用什么方法来解决这个问题 通常我会发布我已经有的代码,但我甚至不知道从哪里开始 准备一本字典来存储结果 使用xlrd获取包含数据的行数,然后对每个行进行迭代 对于每个状态代码,如果它不在dict中,您也可以将其创建为dict 然
一旦完成循环,result dict将拥有每个状态中每个条目的计数。我假设您已经知道如何处理这一简单部分,并将电子表格作为列表列表读入Python。所以,你有这样的东西:
data = [['CA', 1],
['AZ', 2],
['NM', 3],
['CA', 2]]
现在,对于每个状态,对于每个数字,您想要的是该数字出现的次数。因此:
counts = {}
for state, number in data:
counts.setdefault(state, collections.Counter())[number] += 1
这显然分为三个部分:(1)将Excel文件中的数据读入一些Python结构,如列表列表。(2) 处理数据的方式与处理来自CSV文件或一组文字的数据的方式相同。(3) 输出您想要输出的任何内容。我唯一的建议是使用
pywin32
并通过COM驱动Excel。就像用Python手工操作一样。这很完美,我完全不知道Counter对象或collections.Counter()。然而,在添加“导入集合”和“从集合导入计数器”后,我遇到了这个错误:TypeError:unhable type:“Counter”并且我的谷歌搜索不成功…@sarah:对不起,您需要将密钥和值传递到setdefault
,而我没有输入密钥。现在试试看。